72 lines
2.3 KiB
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)
|
|
}
|