admin-dashboard-backend/modules/systempermissions/systempermissions.go

72 lines
2.3 KiB
Go

package systempermissions
import (
"janex/admin-dashboard-backend/modules/cache"
"janex/admin-dashboard-backend/modules/utils"
"strings"
"github.com/rs/zerolog/log"
)
func InitSystemPermissions() {
cache.AddSystemPermissions([]string{
utils.PermissionGroupTasksHistory,
utils.PermissionGroupTasksCheckingForCategoryGroupChanges,
utils.PermissionAllUsersActionChangeRole,
utils.PermissionAllUsersActionDeleteUser,
utils.PermissionAllUsersActionUserDeactivation,
utils.PermissionAllUsersCreateNewUser,
utils.PermissionScannerUseScanners,
utils.PermissionAdminAreaCreateNewRole,
utils.PermissionAdminAreaUpdateRole,
utils.PermissionAdminAreaDeleteRole,
utils.PermissionAdminAreaMoveRoleUpDown,
utils.PermissionAdminAreaLogs,
})
}
// dynamic permissions like group_tasks.overview.XY.new_task are replaced with the category to group_tasks.overview.test.new_task
func AddDynamicGroupTasksPermissions() {
var newGroupTasksPermissions []string
for _, categoryGroup := range cache.GetCategoryGroups() {
for _, dynamicGroupTasksPermission := range utils.DynamicGroupTasksPermissions {
newGroupTasksPermissions = append(newGroupTasksPermissions, ConvertXYPermission(dynamicGroupTasksPermission, categoryGroup.Category))
}
}
cache.AddSystemPermissions(newGroupTasksPermissions)
}
func AddDynamicGroupTasksPermissionsByCategory(category string) []string {
var newGroupTasksPermissions []string
for _, dynamicGroupTasksPermission := range utils.DynamicGroupTasksPermissions {
newGroupTasksPermissions = append(newGroupTasksPermissions, ConvertXYPermission(dynamicGroupTasksPermission, category))
}
log.Debug().Msgf("AddDynamicGroupTasksPermissionsByCategory: %v", newGroupTasksPermissions)
cache.AddSystemPermissions(newGroupTasksPermissions)
return newGroupTasksPermissions
}
func RemoveDynamicGroupTasksPermissionsByCategory(category string) []string {
var permissions []string
for _, dynamicGroupTasksPermission := range utils.DynamicGroupTasksPermissions {
permissions = append(permissions, ConvertXYPermission(dynamicGroupTasksPermission, category))
}
log.Debug().Msgf("DynamicGroupTasksPermissions %v", permissions)
cache.DeleteSystemPermissions(permissions)
return permissions
}
func ConvertXYPermission(permission string, category string) string {
return strings.Replace(permission, "XY", strings.ToLower(category), 1)
}