mirror of
https://github.com/fankes/beszel.git
synced 2025-10-19 17:59:28 +08:00
make user role optional and default to 'user'
This commit is contained in:
@@ -152,6 +152,15 @@ func main() {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// user creation - set default role to user if unset
|
||||||
|
app.OnModelBeforeCreate("users").Add(func(e *core.ModelEvent) error {
|
||||||
|
user := e.Model.(*models.Record)
|
||||||
|
if user.Get("role") == "" {
|
||||||
|
user.Set("role", "user")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
// immediately create connection for new servers
|
// immediately create connection for new servers
|
||||||
app.OnModelAfterCreate("systems").Add(func(e *core.ModelEvent) error {
|
app.OnModelAfterCreate("systems").Add(func(e *core.ModelEvent) error {
|
||||||
go updateSystem(e.Model.(*models.Record))
|
go updateSystem(e.Model.(*models.Record))
|
||||||
|
78
hub/migrations/1722180627_updated_users.go
Normal file
78
hub/migrations/1722180627_updated_users.go
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
package migrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/pocketbase/dbx"
|
||||||
|
"github.com/pocketbase/pocketbase/daos"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
"github.com/pocketbase/pocketbase/models/schema"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
edit_role := &schema.SchemaField{}
|
||||||
|
if err := json.Unmarshal([]byte(`{
|
||||||
|
"system": false,
|
||||||
|
"id": "qkbp58ae",
|
||||||
|
"name": "role",
|
||||||
|
"type": "select",
|
||||||
|
"required": false,
|
||||||
|
"presentable": false,
|
||||||
|
"unique": false,
|
||||||
|
"options": {
|
||||||
|
"maxSelect": 1,
|
||||||
|
"values": [
|
||||||
|
"user",
|
||||||
|
"admin",
|
||||||
|
"readonly"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}`), edit_role); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
collection.Schema.AddField(edit_role)
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
}, func(db dbx.Builder) error {
|
||||||
|
dao := daos.New(db);
|
||||||
|
|
||||||
|
collection, err := dao.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update
|
||||||
|
edit_role := &schema.SchemaField{}
|
||||||
|
if err := json.Unmarshal([]byte(`{
|
||||||
|
"system": false,
|
||||||
|
"id": "qkbp58ae",
|
||||||
|
"name": "role",
|
||||||
|
"type": "select",
|
||||||
|
"required": true,
|
||||||
|
"presentable": false,
|
||||||
|
"unique": false,
|
||||||
|
"options": {
|
||||||
|
"maxSelect": 1,
|
||||||
|
"values": [
|
||||||
|
"user",
|
||||||
|
"admin",
|
||||||
|
"readonly"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}`), edit_role); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
collection.Schema.AddField(edit_role)
|
||||||
|
|
||||||
|
return dao.SaveCollection(collection)
|
||||||
|
})
|
||||||
|
}
|
Reference in New Issue
Block a user