43 lines
1.1 KiB
Go
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
|
|
}
|