removed scanner
parent
b92b030dbc
commit
e81bdc2ba9
|
@ -39,7 +39,6 @@ func InitDatabase() {
|
|||
db.AutoMigrate(&structs.UserSession{})
|
||||
db.AutoMigrate(&structs.GroupTasks{})
|
||||
db.AutoMigrate(&structs.GroupTaskSteps{})
|
||||
db.AutoMigrate(&structs.Scanner{})
|
||||
db.AutoMigrate(&structs.Role{})
|
||||
db.AutoMigrate(&structs.RolePermission{})
|
||||
db.AutoMigrate(&structs.UserApiKey{})
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package structs
|
||||
|
||||
import "time"
|
||||
|
||||
type Scanner struct {
|
||||
Id string // this id is used for ui
|
||||
Session string // this session is used for api calls
|
||||
Name string
|
||||
UsedByUserId string
|
||||
UserAgent string
|
||||
LastUsed time.Time
|
||||
RegisteredAt time.Time
|
||||
}
|
||||
|
||||
type ScannerRequest struct {
|
||||
ScannerName string
|
||||
}
|
||||
|
||||
type ScannerResponse struct {
|
||||
Id string
|
||||
Session string
|
||||
}
|
||||
|
||||
type ScanResultRequest struct {
|
||||
ScanResult string
|
||||
}
|
|
@ -33,9 +33,6 @@ const (
|
|||
GroupTaskLockedTime = 3
|
||||
SessionExpiresAtTime = 7 * 24 * 60 * 60 // 1 week
|
||||
|
||||
LogTypeInfo = 0
|
||||
LogTypeError = 1
|
||||
|
||||
ConnectionStateOffline = 0
|
||||
ConnectionStateOnline = 1
|
||||
|
||||
|
@ -64,11 +61,7 @@ const (
|
|||
SentCmdGroupTasksReloaded = 8
|
||||
SentCmdUpdateUserSessions = 9
|
||||
SentCmdUpdateAllUsersUserAvatar = 10
|
||||
SentCmdNewScanner = 11
|
||||
SentCmdDeleteScanner = 12
|
||||
SentCmdUpdateScannerUsedBy = 13
|
||||
SentCmdScanResult = 14
|
||||
SentCmdUpdateScannerLastUsed = 15
|
||||
|
||||
SentCmdTaskLocked = 16
|
||||
SentCmdTaskUnlocked = 17
|
||||
SentCmdUserProfileUpdated = 18
|
||||
|
@ -117,8 +110,7 @@ const (
|
|||
ReceivedCmdAllUsersCreateNewUser = 12
|
||||
ReceivedCmdAllUsersDeleteUser = 13
|
||||
ReceivedCmdAllUsersUserDeactivation = 14
|
||||
ReceivedCmdScannersUseScanners = 15
|
||||
ReceivedCmdScannersDisconnectScanner = 16
|
||||
ReceivedCmdScannerNewScan = 15
|
||||
ReceivedCmdHandleUserActionTaskStep = 18
|
||||
ReceivedCmdCreateNewUserApiKey = 19
|
||||
ReceivedCmdDeleteUserApiKey = 20
|
||||
|
@ -187,7 +179,6 @@ const (
|
|||
PermissionAllUsersActionChangeRole = "all_users.action.change_role"
|
||||
PermissionAllUsersActionDeleteUser = "all_users.action.delete_user"
|
||||
PermissionAllUsersActionUserDeactivation = "all_users.action.user_deactivation"
|
||||
PermissionScannerUseScanners = "scanner.use_scanners"
|
||||
|
||||
_adminArea = "admin_area."
|
||||
_adminAreaRoles = _adminArea + "roles."
|
||||
|
@ -226,7 +217,6 @@ var SystemPermissions = []string{
|
|||
PermissionAllUsersActionDeleteUser,
|
||||
PermissionAllUsersActionUserDeactivation,
|
||||
PermissionAllUsersCreateNewUser,
|
||||
PermissionScannerUseScanners,
|
||||
PermissionAdminAreaCreateNewRole,
|
||||
PermissionAdminAreaUpdateRole,
|
||||
PermissionAdminAreaDeleteRole,
|
||||
|
|
|
@ -11,8 +11,7 @@ func ValidatorInit() {
|
|||
|
||||
rsvalidator.Validate.RegisterStructValidationMapRules(generalRules,
|
||||
structs.UserLoginRequest{},
|
||||
structs.UserSignOutSessionRequest{},
|
||||
structs.ScannerRequest{})
|
||||
structs.UserSignOutSessionRequest{})
|
||||
|
||||
rsvalidator.Validate.RegisterStructValidationMapRules(groupTaskRules,
|
||||
structs.ApiGroupTaskRequest{})
|
||||
|
|
|
@ -1,121 +0,0 @@
|
|||
package jxscanner
|
||||
|
||||
import (
|
||||
"jannex/admin-dashboard-backend/modules/database"
|
||||
"jannex/admin-dashboard-backend/modules/logger"
|
||||
"jannex/admin-dashboard-backend/modules/structs"
|
||||
"jannex/admin-dashboard-backend/modules/utils"
|
||||
"jannex/admin-dashboard-backend/socketclients"
|
||||
"time"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rslogger"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsvalidator"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/savsgio/gotils/uuid"
|
||||
)
|
||||
|
||||
func AddScanner(c *fiber.Ctx) error {
|
||||
var body structs.ScannerRequest
|
||||
|
||||
if err := c.BodyParser(&body); err != nil {
|
||||
log.Error().Msg("Failed to parse body, err: " + err.Error())
|
||||
return c.Status(fiber.StatusBadRequest).JSON(err)
|
||||
}
|
||||
|
||||
if err := rsvalidator.ValidateStruct(body); err != nil {
|
||||
log.Error().Msgf("Failed to validate body, err: %v", err)
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
}
|
||||
|
||||
id := uuid.V4()
|
||||
session, err := rsutils.GenerateSession()
|
||||
|
||||
if err != nil {
|
||||
return c.SendStatus(fiber.StatusInternalServerError)
|
||||
}
|
||||
|
||||
scanner := &structs.Scanner{
|
||||
Id: id,
|
||||
Session: session,
|
||||
Name: body.ScannerName,
|
||||
UserAgent: string(c.Context().UserAgent()),
|
||||
RegisteredAt: time.Now(),
|
||||
}
|
||||
|
||||
database.DB.Create(scanner)
|
||||
|
||||
// clear session to prevent leaking and sending to ui
|
||||
scanner.Session = ""
|
||||
|
||||
socketclients.BroadcastMessage(structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdNewScanner,
|
||||
Body: scanner,
|
||||
})
|
||||
|
||||
logger.AddSystemLog(rslogger.LogTypeInfo, "Scanner %s %s was registered", scanner.Id, scanner.Name)
|
||||
|
||||
return c.JSON(structs.ScannerResponse{Id: id, Session: session})
|
||||
}
|
||||
|
||||
func ScanResult(c *fiber.Ctx) error {
|
||||
var body structs.ScanResultRequest
|
||||
|
||||
if err := c.BodyParser(&body); err != nil {
|
||||
log.Error().Msg("Failed to parse body, err: " + err.Error())
|
||||
return c.Status(fiber.StatusBadRequest).JSON(err)
|
||||
}
|
||||
|
||||
if body.ScanResult == "" {
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
}
|
||||
|
||||
scannerId := c.Locals("scannerId").(string)
|
||||
lastUsed := time.Now()
|
||||
|
||||
database.DB.Model(&structs.Scanner{}).Where("id = ?", scannerId).Updates(&structs.Scanner{LastUsed: lastUsed})
|
||||
|
||||
socketclients.BroadcastMessage(structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdUpdateScannerLastUsed,
|
||||
Body: struct {
|
||||
ScannerId string
|
||||
LastUsed time.Time
|
||||
}{
|
||||
ScannerId: scannerId,
|
||||
LastUsed: lastUsed,
|
||||
},
|
||||
})
|
||||
|
||||
socketclients.SendMessageToUser(c.Locals("usedByUserId").(string), "", structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdScanResult,
|
||||
Body: body.ScanResult,
|
||||
})
|
||||
|
||||
logger.AddSystemLog(rslogger.LogTypeInfo, "Scanner %s has scanned %s", scannerId, body.ScanResult)
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
func DeleteScanner(c *fiber.Ctx) error {
|
||||
session := utils.GetXAuhorizationHeader(c)
|
||||
|
||||
var scanner structs.Scanner
|
||||
|
||||
database.DB.First(&scanner, "session = ?", session)
|
||||
|
||||
database.DB.Delete(&structs.Scanner{}, "session = ?", session)
|
||||
|
||||
socketclients.BroadcastMessage(structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdDeleteScanner,
|
||||
Body: struct {
|
||||
Id string
|
||||
}{
|
||||
Id: scanner.Id,
|
||||
},
|
||||
})
|
||||
|
||||
logger.AddSystemLog(rslogger.LogTypeInfo, "Scanner %s was deleted", scanner.Id)
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
|
@ -286,22 +286,6 @@ func GetAllUsers() []structs.AllUsers {
|
|||
return allUsers
|
||||
}
|
||||
|
||||
func GetAllScanners() []structs.Scanner {
|
||||
var scanners []structs.Scanner
|
||||
var allScanners []structs.Scanner
|
||||
|
||||
database.DB.Find(&scanners)
|
||||
|
||||
for _, scanner := range scanners {
|
||||
// clear session to prevent leaking and sending to ui
|
||||
scanner.Session = ""
|
||||
|
||||
allScanners = append(allScanners, scanner)
|
||||
}
|
||||
|
||||
return allScanners
|
||||
}
|
||||
|
||||
func isUsernameAvailable(username string) bool {
|
||||
var user structs.User
|
||||
database.DB.Select("username").Where("username = ?", username).Find(&user)
|
||||
|
@ -911,16 +895,6 @@ func AllUsersDeleteUser(conn *websocket.Conn, userId string) {
|
|||
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)
|
||||
|
||||
BroadcastMessageToTopics(
|
||||
|
@ -929,10 +903,8 @@ func AllUsersDeleteUser(conn *websocket.Conn, userId string) {
|
|||
Cmd: utils.SentCmdAllUsersUserDeleted,
|
||||
Body: struct {
|
||||
UserId string
|
||||
ScannerId string
|
||||
}{
|
||||
UserId: userId,
|
||||
ScannerId: scannerInUsage.Id,
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -964,6 +936,7 @@ func AllUsersUserDeactivation(conn *websocket.Conn, userId string, deactivate bo
|
|||
conn.Locals("userId").(string), userId, strconv.FormatBool(deactivate))
|
||||
}
|
||||
|
||||
/*
|
||||
func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
|
||||
database.DB.Model(&structs.Scanner{}).Where("id = ?", scannerId).Updates(structs.Scanner{UsedByUserId: userId})
|
||||
|
||||
|
@ -983,7 +956,7 @@ func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
|
|||
} else {
|
||||
logger.AddSystemLog(rslogger.LogTypeInfo, "Scanner %s is not longer used", scannerId)
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
func GetUserApiKeys(userId string) []structs.UserApiKey {
|
||||
var apiKeys []structs.UserApiKey
|
||||
|
|
|
@ -269,21 +269,8 @@ func RunHub() {
|
|||
|
||||
socketclients.AllUsersUserDeactivation(data.Conn, receivedMessage.Body["UserId"].(string), receivedMessage.Body["Deactivation"].(bool))
|
||||
break
|
||||
case utils.ReceivedCmdScannersUseScanners:
|
||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionScannerUseScanners) {
|
||||
socketclients.SendErrorMessageNoPermissions(data.Conn.Locals("sessionId").(string))
|
||||
break
|
||||
}
|
||||
|
||||
socketclients.ScannersUpdateScannerUsedByUserId(data.Conn.Locals("userId").(string), receivedMessage.Body["ScannerId"].(string))
|
||||
break
|
||||
case utils.ReceivedCmdScannersDisconnectScanner:
|
||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionScannerUseScanners) {
|
||||
socketclients.SendErrorMessageNoPermissions(data.Conn.Locals("sessionId").(string))
|
||||
break
|
||||
}
|
||||
|
||||
socketclients.ScannersUpdateScannerUsedByUserId("", receivedMessage.Body["ScannerId"].(string))
|
||||
case utils.ReceivedCmdScannerNewScan:
|
||||
log.Info().Msgf("Received new scan: %v", receivedMessage.Body)
|
||||
break
|
||||
case utils.ReceivedCmdHandleUserActionTaskStep:
|
||||
if !socketclients.HasXYPermission(data.Conn.Locals("userId").(string), utils.PermissionGroupTasksOverviewXYReloadGroupConfig, receivedMessage.Body["category"].(string)) {
|
||||
|
|
Loading…
Reference in New Issue