delete user
parent
5a13c3fe36
commit
d5a8af49cb
|
@ -10,6 +10,7 @@ func InitSystemPermissions() {
|
|||
cache.AddSystemPermissions([]string{
|
||||
utils.PermissionGroupTasksHistory,
|
||||
utils.PermissionAllUsersActionChangeRole,
|
||||
utils.PermissionAllUsersActionDeleteUser,
|
||||
utils.PermissionAllUsersCreateNewUser,
|
||||
utils.PermissionScannerUseScanners,
|
||||
utils.PermissionAdminAreaCreateNewRole,
|
||||
|
|
|
@ -58,6 +58,7 @@ const (
|
|||
SentCmdRolePermissionsUpdated = 24
|
||||
SentCmdErrorNoPermissions = 25
|
||||
SentCmdAllUsersNewUserCreated = 26
|
||||
SentCmdAllUsersUserDeleted = 27
|
||||
)
|
||||
|
||||
// commands received from web clients
|
||||
|
@ -74,6 +75,7 @@ const (
|
|||
ReceivedCmdAdminAreaDeleteRole = 10
|
||||
ReceivedCmdAllUsersUpdateUserRole = 11
|
||||
ReceivedCmdAllUsersCreateNewUser = 12
|
||||
ReceivedCmdAllUsersDeleteUser = 13
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -102,6 +104,7 @@ const (
|
|||
|
||||
PermissionAllUsersCreateNewUser = "all_users.create_new_user"
|
||||
PermissionAllUsersActionChangeRole = "all_users.action.change_role"
|
||||
PermissionAllUsersActionDeleteUser = "all_users.action.delete_user"
|
||||
PermissionScannerUseScanners = "scanner.use_scanners"
|
||||
|
||||
_adminArea = "admin_area."
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"janex/admin-dashboard-backend/modules/structs"
|
||||
"janex/admin-dashboard-backend/modules/systempermissions"
|
||||
"janex/admin-dashboard-backend/modules/utils"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"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,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -267,6 +267,14 @@ func RunHub() {
|
|||
|
||||
socketclients.AllUsersCreateNewUser(data.Conn.Locals("sessionId").(string), receivedMessage.Body)
|
||||
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:
|
||||
log.Error().Msgf("Received unknown message: %v", receivedMessage)
|
||||
|
|
Loading…
Reference in New Issue