photoprism/internal/acl/grant.go

24 lines
894 B
Go
Raw Normal View History

package acl
// Predefined grants to simplify configuration.
var (
GrantFullAccess = Grant{FullAccess: true, AccessAll: true, AccessLibrary: true, ActionCreate: true, ActionUpdate: true, ActionDelete: true, ActionDownload: true, ActionShare: true, ActionRate: true, ActionReact: true, ActionManage: true, ActionSubscribe: true}
GrantSearchShared = Grant{AccessShared: true, ActionSearch: true, ActionView: true, ActionDownload: true}
GrantSubscribeAll = Grant{AccessAll: true, ActionSubscribe: true}
GrantSubscribeOwn = Grant{AccessOwn: true, ActionSubscribe: true}
)
// Grant represents permissions granted or denied.
type Grant map[Permission]bool
// Allow checks whether the permission is granted.
func (grant Grant) Allow(perm Permission) bool {
if result, ok := grant[perm]; ok {
return result
} else if result, ok = grant[FullAccess]; ok {
return result
}
return false
}