mirror of
https://github.com/fankes/beszel.git
synced 2025-10-19 17:59:28 +08:00
feat: add SHARE_ALL_SYSTEMS env var
This commit is contained in:
@@ -121,6 +121,25 @@ func (h *Hub) initialize() error {
|
|||||||
if err := h.Save(usersCollection); err != nil {
|
if err := h.Save(usersCollection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// allow all users to access systems if SHARE_ALL_SYSTEMS is set
|
||||||
|
systemsCollection, err := h.FindCachedCollectionByNameOrId("systems")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
shareAllSystems, _ := GetEnv("SHARE_ALL_SYSTEMS")
|
||||||
|
systemsReadRule := "@request.auth.id != \"\""
|
||||||
|
if shareAllSystems != "true" {
|
||||||
|
// default is to only show systems that the user id is assigned to
|
||||||
|
systemsReadRule += " && users.id ?= @request.auth.id"
|
||||||
|
}
|
||||||
|
updateDeleteRule := systemsReadRule + " && @request.auth.role != \"readonly\""
|
||||||
|
systemsCollection.ListRule = &systemsReadRule
|
||||||
|
systemsCollection.ViewRule = &systemsReadRule
|
||||||
|
systemsCollection.UpdateRule = &updateDeleteRule
|
||||||
|
systemsCollection.DeleteRule = &updateDeleteRule
|
||||||
|
if err := h.Save(systemsCollection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user