delete user

main
alex 2023-06-25 14:56:29 +02:00
parent 5a13c3fe36
commit d5a8af49cb
4 changed files with 49 additions and 0 deletions

View File

@ -10,6 +10,7 @@ func InitSystemPermissions() {
cache.AddSystemPermissions([]string{ cache.AddSystemPermissions([]string{
utils.PermissionGroupTasksHistory, utils.PermissionGroupTasksHistory,
utils.PermissionAllUsersActionChangeRole, utils.PermissionAllUsersActionChangeRole,
utils.PermissionAllUsersActionDeleteUser,
utils.PermissionAllUsersCreateNewUser, utils.PermissionAllUsersCreateNewUser,
utils.PermissionScannerUseScanners, utils.PermissionScannerUseScanners,
utils.PermissionAdminAreaCreateNewRole, utils.PermissionAdminAreaCreateNewRole,

View File

@ -58,6 +58,7 @@ const (
SentCmdRolePermissionsUpdated = 24 SentCmdRolePermissionsUpdated = 24
SentCmdErrorNoPermissions = 25 SentCmdErrorNoPermissions = 25
SentCmdAllUsersNewUserCreated = 26 SentCmdAllUsersNewUserCreated = 26
SentCmdAllUsersUserDeleted = 27
) )
// commands received from web clients // commands received from web clients
@ -74,6 +75,7 @@ const (
ReceivedCmdAdminAreaDeleteRole = 10 ReceivedCmdAdminAreaDeleteRole = 10
ReceivedCmdAllUsersUpdateUserRole = 11 ReceivedCmdAllUsersUpdateUserRole = 11
ReceivedCmdAllUsersCreateNewUser = 12 ReceivedCmdAllUsersCreateNewUser = 12
ReceivedCmdAllUsersDeleteUser = 13
) )
const ( const (
@ -102,6 +104,7 @@ const (
PermissionAllUsersCreateNewUser = "all_users.create_new_user" PermissionAllUsersCreateNewUser = "all_users.create_new_user"
PermissionAllUsersActionChangeRole = "all_users.action.change_role" PermissionAllUsersActionChangeRole = "all_users.action.change_role"
PermissionAllUsersActionDeleteUser = "all_users.action.delete_user"
PermissionScannerUseScanners = "scanner.use_scanners" PermissionScannerUseScanners = "scanner.use_scanners"
_adminArea = "admin_area." _adminArea = "admin_area."

View File

@ -7,6 +7,7 @@ import (
"janex/admin-dashboard-backend/modules/structs" "janex/admin-dashboard-backend/modules/structs"
"janex/admin-dashboard-backend/modules/systempermissions" "janex/admin-dashboard-backend/modules/systempermissions"
"janex/admin-dashboard-backend/modules/utils" "janex/admin-dashboard-backend/modules/utils"
"os"
"time" "time"
"github.com/gofiber/websocket/v2" "github.com/gofiber/websocket/v2"
@ -693,3 +694,39 @@ func AllUsersCreateNewUser(sessionId string, body map[string]interface{}) {
}, },
}) })
} }
func AllUsersDeleteUser(userId string) {
var user structs.User
database.DB.Select("avatar").Where("id = ?", userId).Find(&user)
if user.Avatar != "" {
os.Remove("./public/avatars/" + user.Avatar)
}
database.DB.Where("id = ?", userId).Delete(&structs.User{})
database.DB.Where("user_id = ?", userId).Delete(&structs.UserSession{})
var scannerInUsage structs.Scanner
database.DB.Select("id").Where("used_by_user_id = ?", userId).Find(&scannerInUsage)
if scannerInUsage.Id != "" {
database.DB.Model(&structs.Scanner{}).Where("id = ?", scannerInUsage.Id).Updates(structs.Scanner{
UsedByUserId: "",
})
}
CloseAndDeleteAllUserConnections(userId)
BroadcastMessage(structs.SendSocketMessage{
Cmd: utils.SentCmdAllUsersUserDeleted,
Body: struct {
UserId string
ScannerId string
}{
UserId: userId,
ScannerId: scannerInUsage.Id,
},
})
}

View File

@ -267,6 +267,14 @@ func RunHub() {
socketclients.AllUsersCreateNewUser(data.Conn.Locals("sessionId").(string), receivedMessage.Body) socketclients.AllUsersCreateNewUser(data.Conn.Locals("sessionId").(string), receivedMessage.Body)
break break
case utils.ReceivedCmdAllUsersDeleteUser:
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionDeleteUser) {
socketclients.SendErrorMessageNoPermissions(data.Conn.Locals("sessionId").(string))
break
}
socketclients.AllUsersDeleteUser(receivedMessage.Body["UserId"].(string))
break
default: default:
log.Error().Msgf("Received unknown message: %v", receivedMessage) log.Error().Msgf("Received unknown message: %v", receivedMessage)