permission handling
parent
1411fad64f
commit
3da69ef7f7
|
@ -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
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue