6e74f16a77
Signed-off-by: Michael Mayer <michael@photoprism.app>
23 lines
894 B
Go
23 lines
894 B
Go
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
|
|
}
|