Files
yovision/Sense/server/app/sense/identity/permissions.go
T

43 lines
1.1 KiB
Go

package identity
var rolePermissions = map[string][]string{
RoleAdministrator: {
PermissionUsersRead, PermissionUsersWrite, PermissionAuditRead,
PermissionDeviceRead, PermissionDeviceWrite,
PermissionMediaRead, PermissionMediaWrite,
PermissionAreaRead, PermissionAreaWrite,
},
RoleOperator: {
PermissionDeviceRead, PermissionDeviceWrite,
PermissionMediaRead, PermissionMediaWrite,
PermissionAreaRead, PermissionAreaWrite,
},
RoleSiteAdmin: {
PermissionUsersRead, PermissionAuditRead,
PermissionDeviceRead, PermissionDeviceWrite,
PermissionMediaRead, PermissionAreaRead, PermissionAreaWrite,
},
RoleViewer: {
PermissionDeviceRead, PermissionMediaRead, PermissionAreaRead,
},
}
func ValidRole(role string) bool {
_, ok := rolePermissions[role]
return ok
}
func PermissionsForRole(role string) []string {
permissions := rolePermissions[role]
return append([]string(nil), permissions...)
}
func HasPermission(role, permission string) bool {
for _, candidate := range rolePermissions[role] {
if candidate == permission {
return true
}
}
return false
}