permission handling

main
alex 2023-06-23 12:10:46 +02:00
parent 1411fad64f
commit 3da69ef7f7
2 changed files with 13 additions and 9 deletions

View File

@ -37,12 +37,12 @@ func InitDatabase() {
db.AutoMigrate(&structs.Role{}) db.AutoMigrate(&structs.Role{})
db.AutoMigrate(&structs.RolePermission{}) db.AutoMigrate(&structs.RolePermission{})
//createUser() /* masterRoleId := handleMasterRolePermissions() */
handleMasterRolePermissions()
//createUser(masterRoleId)
} }
func createUser() { func createUser(masterRoleId string) {
adminRoleId := createDefaultRole()
pw := []byte("haha") pw := []byte("haha")
hashedPassword, err := bcrypt.GenerateFromPassword(pw, bcrypt.DefaultCost) hashedPassword, err := bcrypt.GenerateFromPassword(pw, bcrypt.DefaultCost)
@ -53,7 +53,7 @@ func createUser() {
DB.Create(&structs.User{ DB.Create(&structs.User{
Id: uuid.New().String(), Id: uuid.New().String(),
RoleId: adminRoleId, RoleId: masterRoleId,
Username: "Alex", Username: "Alex",
Email: "alex@roese.dev", Email: "alex@roese.dev",
Password: string(hashedPassword), Password: string(hashedPassword),
@ -61,7 +61,7 @@ func createUser() {
}) })
} }
func createDefaultRole() (roleId string) { func handleMasterRolePermissions() (roleId string) {
// create admin role if not already existing // create admin role if not already existing
role := structs.Role{ role := structs.Role{
Id: uuid.New().String(), Id: uuid.New().String(),
@ -127,9 +127,8 @@ func createDefaultRole() (roleId string) {
if len(outdatedPermissions) > 0 { if len(outdatedPermissions) > 0 {
for _, outdatedPermission := range outdatedPermissions { for _, outdatedPermission := range outdatedPermissions {
DB.Where("role_id = ?", outdatedPermission.RoleId). // delete old permissions for all roles
Where("permission_id = ?", outdatedPermission.PermissionId). DB.Where("permission_id = ?", outdatedPermission.PermissionId).Delete(&outdatedPermission)
Delete(&outdatedPermission)
} }
} }
} else { // admin role has no permissions - grant all permissions } else { // admin role has no permissions - grant all permissions

View File

@ -91,6 +91,9 @@ const (
_groupTasks = "group_tasks." _groupTasks = "group_tasks."
PermissionGroupTasksHistory = _groupTasks + "history" PermissionGroupTasksHistory = _groupTasks + "history"
PermissionAllUsersActionChangeRole = "all_users.action.change_role"
PermissionScannerUseScanners = "scanner.use_scanners"
_adminArea = "admin_area." _adminArea = "admin_area."
_adminAreaRoles = _adminArea + "roles." _adminAreaRoles = _adminArea + "roles."
PermissionAdminAreaAddRole = _adminAreaRoles + "add_role" PermissionAdminAreaAddRole = _adminAreaRoles + "add_role"
@ -103,6 +106,8 @@ const (
func GetSystemPermissions() []string { func GetSystemPermissions() []string {
return []string{ return []string{
PermissionGroupTasksHistory, PermissionGroupTasksHistory,
PermissionAllUsersActionChangeRole,
PermissionScannerUseScanners,
PermissionAdminAreaAddRole, PermissionAdminAreaAddRole,
PermissionAdminAreaUpdateRole, PermissionAdminAreaUpdateRole,
PermissionAdminAreaDeleteRole, PermissionAdminAreaDeleteRole,