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) }