disconnect from scanner

main
alex 2023-06-26 08:26:21 +02:00
parent fab7ce7da1
commit 2468d12861
5 changed files with 33 additions and 27 deletions

View File

@ -78,6 +78,8 @@ const (
ReceivedCmdAllUsersCreateNewUser = 12
ReceivedCmdAllUsersDeleteUser = 13
ReceivedCmdAllUsersUserDeactivation = 14
ReceivedCmdScannersUseScanners = 15
ReceivedCmdScannersDisconnectScanner = 16
)
const (

View File

@ -111,29 +111,3 @@ func DeleteScanner(c *fiber.Ctx) error {
return c.SendStatus(fiber.StatusOK)
}
func UpdateScannerUsedByUserId(c *fiber.Ctx) error {
scannerId := c.Params("scannerId")
if len(scannerId) != 36 {
log.Error().Msgf("Error parsing scanner id: %v", scannerId)
return c.SendStatus(fiber.StatusBadRequest)
}
usedByUserId := c.Locals("userId").(string)
database.DB.Model(&structs.Scanner{}).Where("id = ?", scannerId).Updates(structs.Scanner{UsedByUserId: usedByUserId})
socketclients.BroadcastMessage(structs.SendSocketMessage{
Cmd: utils.SentCmdUpdateScannerUsedBy,
Body: struct {
ScannerId string
UsedByUserId string
}{
ScannerId: scannerId,
UsedByUserId: usedByUserId,
},
})
return c.SendStatus(fiber.StatusOK)
}

View File

@ -23,7 +23,6 @@ func SetupRoutes(app *fiber.App) {
s.Post("/", jxscanner.AddScanner)
s.Post("/scan", scannerSessionValidation, jxscanner.ScanResult)
s.Delete("/", scannerSessionValidation, jxscanner.DeleteScanner)
s.Patch("/:scannerId", userSessionValidation, jxscanner.UpdateScannerUsedByUserId)
app.Static("/", "./public")
}

View File

@ -787,3 +787,18 @@ func AllUsersUserDeactivation(userId string, deactivate bool) {
},
})
}
func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
database.DB.Model(&structs.Scanner{}).Where("id = ?", scannerId).Updates(structs.Scanner{UsedByUserId: userId})
BroadcastMessage(structs.SendSocketMessage{
Cmd: utils.SentCmdUpdateScannerUsedBy,
Body: struct {
ScannerId string
UsedByUserId string
}{
ScannerId: scannerId,
UsedByUserId: userId,
},
})
}

View File

@ -283,6 +283,22 @@ func RunHub() {
socketclients.AllUsersUserDeactivation(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))
break
default:
log.Error().Msgf("Received unknown message: %v", receivedMessage)