added logging
parent
2187f2951e
commit
ee62fe7c00
2
main.go
2
main.go
|
@ -21,7 +21,7 @@ func init() {
|
||||||
config.LoadConfig()
|
config.LoadConfig()
|
||||||
logger.InitLogger()
|
logger.InitLogger()
|
||||||
utils.ValidatorInit()
|
utils.ValidatorInit()
|
||||||
logger.ReadLanguageLogMessages()
|
logger.InitLanguageLogMessages()
|
||||||
systempermissions.InitSystemPermissions()
|
systempermissions.InitSystemPermissions()
|
||||||
grouptasks.LoadGroups("")
|
grouptasks.LoadGroups("")
|
||||||
database.InitDatabase()
|
database.InitDatabase()
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"janex/admin-dashboard-backend/modules/config"
|
"janex/admin-dashboard-backend/modules/config"
|
||||||
"janex/admin-dashboard-backend/modules/structs"
|
"janex/admin-dashboard-backend/modules/structs"
|
||||||
|
"janex/admin-dashboard-backend/modules/utils"
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -179,9 +180,14 @@ func GetAllLogMessagesDates(systemLogs bool) []string {
|
||||||
return sortedDates
|
return sortedDates
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadLanguageLogMessages() {
|
func InitLanguageLogMessages() {
|
||||||
readLanguageLogMessages(true)
|
readLanguageLogMessages(true)
|
||||||
readLanguageLogMessages(false)
|
readLanguageLogMessages(false)
|
||||||
|
|
||||||
|
AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 8,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func readLanguageLogMessages(systemLogs bool) {
|
func readLanguageLogMessages(systemLogs bool) {
|
||||||
|
@ -209,3 +215,14 @@ func readLanguageLogMessages(systemLogs bool) {
|
||||||
grouptasksLanguageLogMessages = langLogMessages
|
grouptasksLanguageLogMessages = langLogMessages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FormatMapInterface(data map[string]interface{}) string {
|
||||||
|
jsonData, err := json.Marshal(data)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Error().Msgf("Failed to marshal map interface: %s", err.Error())
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(jsonData)
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package jxscanner
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"janex/admin-dashboard-backend/modules/database"
|
"janex/admin-dashboard-backend/modules/database"
|
||||||
|
"janex/admin-dashboard-backend/modules/logger"
|
||||||
"janex/admin-dashboard-backend/modules/structs"
|
"janex/admin-dashboard-backend/modules/structs"
|
||||||
"janex/admin-dashboard-backend/modules/utils"
|
"janex/admin-dashboard-backend/modules/utils"
|
||||||
"janex/admin-dashboard-backend/routers/router/api/v1/user"
|
"janex/admin-dashboard-backend/routers/router/api/v1/user"
|
||||||
|
@ -52,6 +53,21 @@ func AddScanner(c *fiber.Ctx) error {
|
||||||
Body: scanner,
|
Body: scanner,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 14,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "scannerId",
|
||||||
|
Value: scanner.Id,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "scannerName",
|
||||||
|
Value: scanner.Name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.JSON(structs.ScannerResponse{Id: id, Session: session})
|
return c.JSON(structs.ScannerResponse{Id: id, Session: session})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,6 +104,21 @@ func ScanResult(c *fiber.Ctx) error {
|
||||||
Body: body.ScanResult,
|
Body: body.ScanResult,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 15,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "scannerId",
|
||||||
|
Value: scannerId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "scanResult",
|
||||||
|
Value: body.ScanResult,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.SendStatus(fiber.StatusOK)
|
return c.SendStatus(fiber.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,5 +140,16 @@ func DeleteScanner(c *fiber.Ctx) error {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 16,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "scannerId",
|
||||||
|
Value: scanner.Id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.SendStatus(fiber.StatusOK)
|
return c.SendStatus(fiber.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,31 @@ func GetSystemLog(c *fiber.Ctx) error {
|
||||||
return c.SendStatus(fiber.StatusUnauthorized)
|
return c.SendStatus(fiber.StatusUnauthorized)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logType := "GroupTasks"
|
||||||
|
|
||||||
|
if t == "s" {
|
||||||
|
logType = "System"
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 17,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: c.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "logType",
|
||||||
|
Value: logType,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "logDate",
|
||||||
|
Value: date,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
if t == "g" { // grouptasks logs
|
if t == "g" { // grouptasks logs
|
||||||
return c.JSON(struct {
|
return c.JSON(struct {
|
||||||
Logs []structs.LogMessageResponse
|
Logs []structs.LogMessageResponse
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"janex/admin-dashboard-backend/modules/database"
|
"janex/admin-dashboard-backend/modules/database"
|
||||||
|
"janex/admin-dashboard-backend/modules/logger"
|
||||||
"janex/admin-dashboard-backend/modules/structs"
|
"janex/admin-dashboard-backend/modules/structs"
|
||||||
"janex/admin-dashboard-backend/modules/utils"
|
"janex/admin-dashboard-backend/modules/utils"
|
||||||
"janex/admin-dashboard-backend/socketclients"
|
"janex/admin-dashboard-backend/socketclients"
|
||||||
|
@ -70,6 +71,17 @@ func UserLogin(c *fiber.Ctx) error {
|
||||||
UserAgent: string(c.Context().UserAgent()),
|
UserAgent: string(c.Context().UserAgent()),
|
||||||
ExpiresAt: utils.GetSessionExpiresAtTime()})
|
ExpiresAt: utils.GetSessionExpiresAtTime()})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 19,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: user.Id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.JSON(structs.UserLoginResponse{Session: session})
|
return c.JSON(structs.UserLoginResponse{Session: session})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,6 +92,17 @@ func UserLogout(c *fiber.Ctx) error {
|
||||||
|
|
||||||
socketclients.CloseAllUserSessionConnections(session)
|
socketclients.CloseAllUserSessionConnections(session)
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 20,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: c.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.SendStatus(fiber.StatusCreated)
|
return c.SendStatus(fiber.StatusCreated)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ package user
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"janex/admin-dashboard-backend/modules/database"
|
"janex/admin-dashboard-backend/modules/database"
|
||||||
|
"janex/admin-dashboard-backend/modules/logger"
|
||||||
"janex/admin-dashboard-backend/modules/structs"
|
"janex/admin-dashboard-backend/modules/structs"
|
||||||
"janex/admin-dashboard-backend/modules/utils"
|
"janex/admin-dashboard-backend/modules/utils"
|
||||||
"janex/admin-dashboard-backend/socketclients"
|
"janex/admin-dashboard-backend/socketclients"
|
||||||
|
@ -50,5 +51,16 @@ func UpdateAvatar(c *fiber.Ctx) error {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 21,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: user.Id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return c.SaveFile(fileHeader, fmt.Sprintf("./public/avatars/%s", fileName))
|
return c.SaveFile(fileHeader, fmt.Sprintf("./public/avatars/%s", fileName))
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,9 @@ package user
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"janex/admin-dashboard-backend/modules/database"
|
"janex/admin-dashboard-backend/modules/database"
|
||||||
|
"janex/admin-dashboard-backend/modules/logger"
|
||||||
"janex/admin-dashboard-backend/modules/structs"
|
"janex/admin-dashboard-backend/modules/structs"
|
||||||
|
"janex/admin-dashboard-backend/modules/utils"
|
||||||
"janex/admin-dashboard-backend/socketclients"
|
"janex/admin-dashboard-backend/socketclients"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
|
@ -27,6 +29,17 @@ func SignOutSession(c *fiber.Ctx) error {
|
||||||
socketclients.CloseAllUserSessionConnections(userSession.Id)
|
socketclients.CloseAllUserSessionConnections(userSession.Id)
|
||||||
|
|
||||||
socketclients.UpdateUserSessionsForUser(userSession.UserId, userSession.Id)
|
socketclients.UpdateUserSessionsForUser(userSession.UserId, userSession.Id)
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 22,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: c.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.SendStatus(fiber.StatusOK)
|
return c.SendStatus(fiber.StatusOK)
|
||||||
|
|
|
@ -16,7 +16,7 @@ func SetupRoutes(app *fiber.App) {
|
||||||
|
|
||||||
u := v1.Group("/user")
|
u := v1.Group("/user")
|
||||||
u.Post("/auth/login", user.UserLogin)
|
u.Post("/auth/login", user.UserLogin)
|
||||||
u.Delete("/auth/logout", user.UserLogout)
|
u.Delete("/auth/logout", userSessionValidation, user.UserLogout)
|
||||||
u.Delete("/session/:idForDeletion", userSessionValidation, user.SignOutSession)
|
u.Delete("/session/:idForDeletion", userSessionValidation, user.SignOutSession)
|
||||||
u.Post("/avatar", userSessionValidation, user.UpdateAvatar)
|
u.Post("/avatar", userSessionValidation, user.UpdateAvatar)
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,12 @@ import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"janex/admin-dashboard-backend/modules/cache"
|
"janex/admin-dashboard-backend/modules/cache"
|
||||||
"janex/admin-dashboard-backend/modules/database"
|
"janex/admin-dashboard-backend/modules/database"
|
||||||
|
"janex/admin-dashboard-backend/modules/logger"
|
||||||
"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"
|
"os"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gofiber/websocket/v2"
|
"github.com/gofiber/websocket/v2"
|
||||||
|
@ -318,8 +320,6 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Debug().Msgf("changes %v %v", len(changes), changes)
|
|
||||||
|
|
||||||
if len(changes) > 0 {
|
if len(changes) > 0 {
|
||||||
user.UpdatedAt = time.Now()
|
user.UpdatedAt = time.Now()
|
||||||
|
|
||||||
|
@ -329,7 +329,20 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) {
|
||||||
if changes["oldPassword"] != nil && changes["newPassword"] != nil {
|
if changes["oldPassword"] != nil && changes["newPassword"] != nil {
|
||||||
// user has changed password - logout all his sessions
|
// user has changed password - logout all his sessions
|
||||||
CloseAndDeleteAllUserConnections(userId)
|
CloseAndDeleteAllUserConnections(userId)
|
||||||
} else {
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 12,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
||||||
Cmd: utils.SentCmdUserProfileUpdated,
|
Cmd: utils.SentCmdUserProfileUpdated,
|
||||||
Body: struct {
|
Body: struct {
|
||||||
|
@ -340,7 +353,6 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) {
|
||||||
Changes: updates,
|
Changes: updates,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
BroadcastMessageExceptUserSessionId(sessionId, structs.SendSocketMessage{
|
BroadcastMessageExceptUserSessionId(sessionId, structs.SendSocketMessage{
|
||||||
Cmd: utils.SentCmdUserProfileUpdated,
|
Cmd: utils.SentCmdUserProfileUpdated,
|
||||||
|
@ -352,6 +364,21 @@ func UpdateUserProfile(conn *websocket.Conn, changes map[string]interface{}) {
|
||||||
Changes: updates,
|
Changes: updates,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 13,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "changes",
|
||||||
|
Value: logger.FormatMapInterface(updates),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -418,7 +445,7 @@ func isRoleDisplayNameAvailable(roleDisplayName string) bool {
|
||||||
return role.DisplayName == ""
|
return role.DisplayName == ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminAreaUpdateRole(sessionId string, body map[string]interface{}) {
|
func AdminAreaUpdateRole(conn *websocket.Conn, body map[string]interface{}) {
|
||||||
if body["RoleId"] == nil {
|
if body["RoleId"] == nil {
|
||||||
log.Error().Msgf("No role id specified in update role %v", body)
|
log.Error().Msgf("No role id specified in update role %v", body)
|
||||||
return
|
return
|
||||||
|
@ -486,6 +513,8 @@ func AdminAreaUpdateRole(sessionId string, body map[string]interface{}) {
|
||||||
|
|
||||||
database.DB.Model(&structs.Role{}).Where("id = ?", roleId).Updates(&updatedRole)
|
database.DB.Model(&structs.Role{}).Where("id = ?", roleId).Updates(&updatedRole)
|
||||||
|
|
||||||
|
sessionId := conn.Locals("sessionId").(string)
|
||||||
|
|
||||||
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
||||||
Cmd: utils.SentCmdAdminAreaRoleUpdated,
|
Cmd: utils.SentCmdAdminAreaRoleUpdated,
|
||||||
Body: struct {
|
Body: struct {
|
||||||
|
@ -514,9 +543,28 @@ func AdminAreaUpdateRole(sessionId string, body map[string]interface{}) {
|
||||||
Cmd: utils.SentCmdRolePermissionsUpdated,
|
Cmd: utils.SentCmdRolePermissionsUpdated,
|
||||||
Body: changes,
|
Body: changes,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 2,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: roleId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "changes",
|
||||||
|
Value: logger.FormatMapInterface(updates),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminAreaMoveRoleToSortingOrder(body map[string]interface{}) {
|
func AdminAreaMoveRoleToSortingOrder(conn *websocket.Conn, body map[string]interface{}) {
|
||||||
roleId := body["RoleId"].(string)
|
roleId := body["RoleId"].(string)
|
||||||
direction := int(body["Direction"].(float64))
|
direction := int(body["Direction"].(float64))
|
||||||
|
|
||||||
|
@ -533,8 +581,6 @@ func AdminAreaMoveRoleToSortingOrder(body map[string]interface{}) {
|
||||||
if direction == 1 {
|
if direction == 1 {
|
||||||
newSortingOrder = currentSortingOrder + 1
|
newSortingOrder = currentSortingOrder + 1
|
||||||
|
|
||||||
log.Debug().Msgf("up %v %v", newSortingOrder, currentSortingOrder)
|
|
||||||
|
|
||||||
if newSortingOrder > database.GetRoleSortingOrder()-1 {
|
if newSortingOrder > database.GetRoleSortingOrder()-1 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -572,9 +618,28 @@ func AdminAreaMoveRoleToSortingOrder(body map[string]interface{}) {
|
||||||
Cmd: utils.SentCmdAdminAreaUpdateRoleSortingOrder,
|
Cmd: utils.SentCmdAdminAreaUpdateRoleSortingOrder,
|
||||||
Body: body,
|
Body: body,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 3,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: role.Id,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "sortingOrder",
|
||||||
|
Value: strconv.Itoa(newSortingOrder),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminAreaDeleteRole(body map[string]interface{}) {
|
func AdminAreaDeleteRole(conn *websocket.Conn, body map[string]interface{}) {
|
||||||
roleId := body["RoleId"].(string)
|
roleId := body["RoleId"].(string)
|
||||||
|
|
||||||
var role structs.Role
|
var role structs.Role
|
||||||
|
@ -593,9 +658,24 @@ func AdminAreaDeleteRole(body map[string]interface{}) {
|
||||||
Cmd: utils.SentCmdAdminAreaRoleDeleted,
|
Cmd: utils.SentCmdAdminAreaRoleDeleted,
|
||||||
Body: body,
|
Body: body,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 4,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: role.Id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateUserRole(userId string, roleId string) {
|
func UpdateUserRole(conn *websocket.Conn, userId string, roleId string) {
|
||||||
database.DB.Model(&structs.User{}).Where("id = ?", userId).Updates(structs.User{
|
database.DB.Model(&structs.User{}).Where("id = ?", userId).Updates(structs.User{
|
||||||
RoleId: roleId,
|
RoleId: roleId,
|
||||||
})
|
})
|
||||||
|
@ -623,6 +703,25 @@ func UpdateUserRole(userId string, roleId string) {
|
||||||
RoleId: roleId,
|
RoleId: roleId,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 5,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: roleId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "targetUserId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func HasPermission(userId string, permission string) bool {
|
func HasPermission(userId string, permission string) bool {
|
||||||
|
@ -647,7 +746,7 @@ func SendErrorMessageNoPermissions(sessionId string) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AllUsersCreateNewUser(sessionId string, body map[string]interface{}) {
|
func AllUsersCreateNewUser(conn *websocket.Conn, body map[string]interface{}) {
|
||||||
if body["Username"] == nil ||
|
if body["Username"] == nil ||
|
||||||
body["Email"] == nil ||
|
body["Email"] == nil ||
|
||||||
body["Password"] == nil ||
|
body["Password"] == nil ||
|
||||||
|
@ -666,6 +765,8 @@ func AllUsersCreateNewUser(sessionId string, body map[string]interface{}) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sessionId := conn.Locals("sessionId").(string)
|
||||||
|
|
||||||
if !isUsernameAvailable(username) {
|
if !isUsernameAvailable(username) {
|
||||||
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
SendMessageOnlyToSessionId(sessionId, structs.SendSocketMessage{
|
||||||
Cmd: utils.SentCmdAllUsersNewUserCreated,
|
Cmd: utils.SentCmdAllUsersNewUserCreated,
|
||||||
|
@ -731,9 +832,28 @@ func AllUsersCreateNewUser(sessionId string, body map[string]interface{}) {
|
||||||
Deactivated: false,
|
Deactivated: false,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 6,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "targetUserId",
|
||||||
|
Value: newUser.Id,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: roleId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AllUsersDeleteUser(userId string) {
|
func AllUsersDeleteUser(conn *websocket.Conn, userId string) {
|
||||||
var user structs.User
|
var user structs.User
|
||||||
|
|
||||||
database.DB.Select("avatar").Where("id = ?", userId).Find(&user)
|
database.DB.Select("avatar").Where("id = ?", userId).Find(&user)
|
||||||
|
@ -767,9 +887,24 @@ func AllUsersDeleteUser(userId string) {
|
||||||
ScannerId: scannerInUsage.Id,
|
ScannerId: scannerInUsage.Id,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 7,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "targetUserId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AllUsersUserDeactivation(userId string, deactivate bool) {
|
func AllUsersUserDeactivation(conn *websocket.Conn, userId string, deactivate bool) {
|
||||||
database.DB.Model(&structs.User{}).Select("deactivated").Where("id = ?", userId).Updates(structs.User{
|
database.DB.Model(&structs.User{}).Select("deactivated").Where("id = ?", userId).Updates(structs.User{
|
||||||
Deactivated: deactivate,
|
Deactivated: deactivate,
|
||||||
})
|
})
|
||||||
|
@ -788,6 +923,25 @@ func AllUsersUserDeactivation(userId string, deactivate bool) {
|
||||||
Deactivated: deactivate,
|
Deactivated: deactivate,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 9,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "targetUserId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "deactivated",
|
||||||
|
Value: strconv.FormatBool(deactivate),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
|
func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
|
||||||
|
@ -803,4 +957,32 @@ func ScannersUpdateScannerUsedByUserId(userId string, scannerId string) {
|
||||||
UsedByUserId: userId,
|
UsedByUserId: userId,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if userId != "" {
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 10,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "scannerId",
|
||||||
|
Value: scannerId,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 11,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "scannerId",
|
||||||
|
Value: scannerId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -268,6 +268,21 @@ func RunHub() {
|
||||||
Cmd: utils.SentCmdAdminAreaNewRoleCreated,
|
Cmd: utils.SentCmdAdminAreaNewRoleCreated,
|
||||||
Body: role,
|
Body: role,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 1,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: data.Conn.Locals("userId").(string),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: "roleId",
|
||||||
|
Value: role.Id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAdminAreaUpdateRole:
|
case utils.ReceivedCmdAdminAreaUpdateRole:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaUpdateRole) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaUpdateRole) {
|
||||||
|
@ -275,7 +290,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AdminAreaUpdateRole(data.Conn.Locals("sessionId").(string), receivedMessage.Body)
|
socketclients.AdminAreaUpdateRole(data.Conn, receivedMessage.Body)
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAdminAreaUpdateRoleSortingOrder:
|
case utils.ReceivedCmdAdminAreaUpdateRoleSortingOrder:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaMoveRoleUpDown) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaMoveRoleUpDown) {
|
||||||
|
@ -283,7 +298,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AdminAreaMoveRoleToSortingOrder(receivedMessage.Body)
|
socketclients.AdminAreaMoveRoleToSortingOrder(data.Conn, receivedMessage.Body)
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAdminAreaDeleteRole:
|
case utils.ReceivedCmdAdminAreaDeleteRole:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaDeleteRole) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAdminAreaDeleteRole) {
|
||||||
|
@ -291,7 +306,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AdminAreaDeleteRole(receivedMessage.Body)
|
socketclients.AdminAreaDeleteRole(data.Conn, receivedMessage.Body)
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAllUsersUpdateUserRole:
|
case utils.ReceivedCmdAllUsersUpdateUserRole:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionChangeRole) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionChangeRole) {
|
||||||
|
@ -299,7 +314,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.UpdateUserRole(receivedMessage.Body["UserId"].(string), receivedMessage.Body["RoleId"].(string))
|
socketclients.UpdateUserRole(data.Conn, receivedMessage.Body["UserId"].(string), receivedMessage.Body["RoleId"].(string))
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAllUsersCreateNewUser:
|
case utils.ReceivedCmdAllUsersCreateNewUser:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersCreateNewUser) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersCreateNewUser) {
|
||||||
|
@ -307,7 +322,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AllUsersCreateNewUser(data.Conn.Locals("sessionId").(string), receivedMessage.Body)
|
socketclients.AllUsersCreateNewUser(data.Conn, receivedMessage.Body)
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAllUsersDeleteUser:
|
case utils.ReceivedCmdAllUsersDeleteUser:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionDeleteUser) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionDeleteUser) {
|
||||||
|
@ -315,7 +330,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AllUsersDeleteUser(receivedMessage.Body["UserId"].(string))
|
socketclients.AllUsersDeleteUser(data.Conn, receivedMessage.Body["UserId"].(string))
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdAllUsersUserDeactivation:
|
case utils.ReceivedCmdAllUsersUserDeactivation:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionUserDeactivation) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionAllUsersActionUserDeactivation) {
|
||||||
|
@ -323,7 +338,7 @@ func RunHub() {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
socketclients.AllUsersUserDeactivation(receivedMessage.Body["UserId"].(string), receivedMessage.Body["Deactivation"].(bool))
|
socketclients.AllUsersUserDeactivation(data.Conn, receivedMessage.Body["UserId"].(string), receivedMessage.Body["Deactivation"].(bool))
|
||||||
break
|
break
|
||||||
case utils.ReceivedCmdScannersUseScanners:
|
case utils.ReceivedCmdScannersUseScanners:
|
||||||
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionScannerUseScanners) {
|
if !socketclients.HasPermission(data.Conn.Locals("userId").(string), utils.PermissionScannerUseScanners) {
|
||||||
|
@ -360,6 +375,17 @@ func RunHub() {
|
||||||
|
|
||||||
socketclients.UpdateUserSessionsForUser(userId, sessionId)
|
socketclients.UpdateUserSessionsForUser(userId, sessionId)
|
||||||
socketclients.UpdateConnectedUsers(userId)
|
socketclients.UpdateConnectedUsers(userId)
|
||||||
|
|
||||||
|
logger.AddSystemLog(structs.LogMessage{
|
||||||
|
Id: 18,
|
||||||
|
Type: utils.LogTypeInfo,
|
||||||
|
Messages: []structs.LogData{
|
||||||
|
{
|
||||||
|
Type: "userId",
|
||||||
|
Value: userId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,209 @@
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 0,
|
"id": 0,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has come online"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has created the role %roleId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has updated the role %roleId% with the following changes: %changes%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has changed the sorting order of role %roleId% to %sortingOrder%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has deleted the role %roleId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has assigned the role %roleId% to %targetUserId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has created the user %targetUserId% with the assigned role %roleId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has deleted the user %targetUserId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "SERVER has started"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has changed the deactivation status of %targetUserId% to %deactivated%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "Scanner %scannerId% is now used by %userId%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "Scanner %scannerId% is not longer used"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has changed his password"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has updated his account with the following changes: %changes%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "Scanner %scannerId% %scannerName% was registered"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "Scanner %scannerId% has scanned %scanResult%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "Scanner %scannerId% was deleted"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 17,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has viewed %logType% logs of the date %logDate%"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has gone offline"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
"languages": [
|
"languages": [
|
||||||
{
|
{
|
||||||
"lang": "en",
|
"lang": "en",
|
||||||
"message": "%userId% has logged in"
|
"message": "%userId% has logged in"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has logged out"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has changed his avatar"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"lang": "en",
|
||||||
|
"message": "%userId% has logged out one of his account sessions"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
Loading…
Reference in New Issue