created tracker api endpoint and created UI interface for trackers
This commit is contained in:
@@ -35,3 +35,32 @@ func DeviceAccessFilter() gin.HandlerFunc {
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
||||
// TrackerAccessFilter middleware sets filtering context for tracker access
|
||||
func TrackerAccessFilter() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
userContext, exists := c.Get("user")
|
||||
if !exists {
|
||||
c.JSON(401, gin.H{"error": "unauthorized"})
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
user, ok := userContext.(handlers.UserContext)
|
||||
if !ok {
|
||||
c.JSON(401, gin.H{"error": "invalid user data"})
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
// Set filter flag and user ID in context (mirrors devices)
|
||||
if user.Role == models.RoleAdmin {
|
||||
c.Set("filterTrackers", false) // Admin sees all trackers
|
||||
} else {
|
||||
c.Set("filterTrackers", true) // Regular user needs filtering
|
||||
c.Set("userID", user.ID) // Store user ID for filtering (same key as devices)
|
||||
}
|
||||
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user