Răsfoiți Sursa

log events for invites and user approvals

abhishek9686 4 luni în urmă
părinte
comite
18e49eb649
2 a modificat fișierele cu 44 adăugiri și 0 ștergeri
  1. 2 0
      models/events.go
  2. 42 0
      pro/controllers/users.go

+ 2 - 0
models/events.go

@@ -6,6 +6,7 @@ const (
 	Create     Action = "CREATE"
 	Update     Action = "UPDATE"
 	Delete     Action = "DELETE"
+	DeleteAll  Action = "DELETE_ALL"
 	Login      Action = "LOGIN"
 	LogOut     Action = "LOGOUT"
 	Connect    Action = "CONNECT"
@@ -24,6 +25,7 @@ const (
 	UserRoleSub        SubjectType = "USER_ROLE"
 	UserGroupSub       SubjectType = "USER_GROUP"
 	UserInviteSub      SubjectType = "USER_INVITE"
+	PendingUserSub     SubjectType = "PENDING_USER"
 	EgressSub          SubjectType = "EGRESS"
 	NetworkSub         SubjectType = "NETWORK"
 	DashboardSub       SubjectType = "DASHBOARD"

+ 42 - 0
pro/controllers/users.go

@@ -1468,6 +1468,20 @@ func approvePendingUser(w http.ResponseWriter, r *http.Request) {
 			break
 		}
 	}
+	logic.LogEvent(&models.Event{
+		Action: models.Create,
+		Source: models.Subject{
+			ID:   r.Header.Get("user"),
+			Name: r.Header.Get("user"),
+			Type: models.UserSub,
+		},
+		Target: models.Subject{
+			ID:   username,
+			Name: username,
+			Type: models.PendingUserSub,
+		},
+		Origin: models.Dashboard,
+	})
 	logic.ReturnSuccessResponse(w, r, "approved "+username)
 }
 
@@ -1499,6 +1513,20 @@ func deletePendingUser(w http.ResponseWriter, r *http.Request) {
 			break
 		}
 	}
+	logic.LogEvent(&models.Event{
+		Action: models.Delete,
+		Source: models.Subject{
+			ID:   r.Header.Get("user"),
+			Name: r.Header.Get("user"),
+			Type: models.UserSub,
+		},
+		Target: models.Subject{
+			ID:   username,
+			Name: username,
+			Type: models.PendingUserSub,
+		},
+		Origin: models.Dashboard,
+	})
 	logic.ReturnSuccessResponse(w, r, "deleted pending "+username)
 }
 
@@ -1514,5 +1542,19 @@ func deleteAllPendingUsers(w http.ResponseWriter, r *http.Request) {
 		logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("failed to delete all pending users "+err.Error()), "internal"))
 		return
 	}
+	logic.LogEvent(&models.Event{
+		Action: models.DeleteAll,
+		Source: models.Subject{
+			ID:   r.Header.Get("user"),
+			Name: r.Header.Get("user"),
+			Type: models.UserSub,
+		},
+		Target: models.Subject{
+			ID:   r.Header.Get("user"),
+			Name: r.Header.Get("user"),
+			Type: models.PendingUserSub,
+		},
+		Origin: models.Dashboard,
+	})
 	logic.ReturnSuccessResponse(w, r, "cleared all pending users")
 }