// Creates a userCtx object to be passed to the sync function func makeUserCtx(user auth.User) map[string]interface{} { if user == nil { return nil } return map[string]interface{}{ "name": user.Name(), "roles": user.RoleNames(), "channels": user.InheritedChannels().AllChannels(), } }
func (listener *changeListener) NewWaiterWithChannels(chans base.Set, user auth.User) *changeWaiter { waitKeys := make([]string, 0, 5) for channel, _ := range chans { waitKeys = append(waitKeys, channel) } var userKeys []string if user != nil { userKeys = []string{auth.UserKeyPrefix + user.Name()} for role, _ := range user.RoleNames() { userKeys = append(userKeys, auth.RoleKeyPrefix+role) } waitKeys = append(waitKeys, userKeys...) } waiter := listener.NewWaiter(waitKeys) waiter.userKeys = userKeys return waiter }