resolve bugs in community profile display

This commit is contained in:
2025-10-17 11:53:30 -06:00
parent 65c739dc57
commit 137bf35a8b
9 changed files with 40 additions and 17 deletions
+10 -1
View File
@@ -43,6 +43,7 @@ type AmContext interface {
Globals() *database.Globals
GlobalFlags() *util.OptionSet
IsMember() bool
IsMemberLocked() bool
LeftMenu() string
RC() int
OutputType() string
@@ -79,6 +80,7 @@ type amContext struct {
effectiveLevel uint16
community *database.Community
isMember bool
isMemberLocked bool
}
// ClearLoginCookie overwrites and removes the login cookie.
@@ -186,6 +188,11 @@ func (c *amContext) IsMember() bool {
return c.isMember
}
// IsMemberLocked returns true if the user is a "locked" member of the currentr community (cannot unjoin).
func (c *amContext) IsMemberLocked() bool {
return c.isMemberLocked
}
// LeftMenu returns the current left menu selector.
func (c *amContext) LeftMenu() string {
return c.session.Values["leftMenu"].(string)
@@ -272,12 +279,13 @@ func (c *amContext) SetCommunityContext(param string) error {
if err != nil {
return err
}
mbr, _, level, err := comm.Membership(c.CurrentUser())
mbr, lock, level, err := comm.Membership(c.CurrentUser())
if err != nil {
return err
}
c.community = comm
c.isMember = mbr
c.isMemberLocked = lock
if level > c.effectiveLevel {
c.effectiveLevel = level
}
@@ -454,6 +462,7 @@ func contextRecycler(incoming chan *amContext, done chan bool) {
c.effectiveLevel = 0
c.community = nil
c.isMember = false
c.isMemberLocked = false
freeContext.Put(c)
}
done <- true