task locking
parent
0118a0cbca
commit
003c9d3eb3
|
@ -40,6 +40,7 @@ type GroupTaskSteps struct {
|
|||
Inputs string `gorm:"type:json"`
|
||||
StartedAt time.Time
|
||||
EndedAt time.Time
|
||||
Locked bool `gorm:"-"` // used by the web client to ensure that only one user can edit the input value
|
||||
}
|
||||
|
||||
// read from file structure
|
||||
|
|
|
@ -36,6 +36,7 @@ const (
|
|||
SentCmdUpdateScannerUsedBy = 13
|
||||
SentCmdScanResult = 14
|
||||
SentCmdUpdateScannerLastUsed = 15
|
||||
SentCmdTaskLocked = 16
|
||||
)
|
||||
|
||||
// commands received from web clients
|
||||
|
@ -44,6 +45,7 @@ const (
|
|||
ReceivedCmdTaskFailedTryAgainRunTaskStep = 2
|
||||
ReceivedCmdTaskContinueTaskStep = 3
|
||||
ReceivedCmdReloadGroupTasks = 4
|
||||
ReceivedCmdTaskLocking = 5
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -13,6 +13,14 @@ func BroadcastMessage(sendSocketMessage structs.SendSocketMessage) {
|
|||
}
|
||||
}
|
||||
|
||||
func BroadcastMessageExceptUserSessionId(ignoreUserSessionId string, sendSocketMessage structs.SendSocketMessage) {
|
||||
for _, client := range cache.GetSocketClients() {
|
||||
if client.SessionId != ignoreUserSessionId {
|
||||
client.SendMessage(sendSocketMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func UpdateConnectedUsers(userId string) {
|
||||
BroadcastMessage(structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdUpdateConnectedUsers,
|
||||
|
|
|
@ -154,6 +154,14 @@ func RunHub() {
|
|||
grouptasks.LoadGroups(category)
|
||||
|
||||
break
|
||||
case utils.ReceivedCmdTaskLocking:
|
||||
log.Info().Msgf("task locking %s", receivedMessage.Body)
|
||||
|
||||
socketclients.BroadcastMessageExceptUserSessionId(data.Conn.Locals("sessionId").(string), structs.SendSocketMessage{
|
||||
Cmd: utils.SentCmdTaskLocked,
|
||||
Body: receivedMessage.Body,
|
||||
})
|
||||
break
|
||||
|
||||
default:
|
||||
log.Error().Msgf("Received unknown message: %s", receivedMessage)
|
||||
|
|
Loading…
Reference in New Issue