- model, migration, command, job and admin-controller stubs start with //summer:make <kind>; registry.gen.go keeps its generated-code header - the registry scan accepts the directive and the older header - command functions may take one *backpack.App; generatedCommands takes a variadic app, so plugin.go files calling generatedCommands() still compile - scaffolded plugins keep the app from Boot and return generatedCommands(p.app) - make:command notes the nil app for an older plugin.go - docs, help text and the blog example follow
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
//summer:make admin-controller
|
|
|
|
package controllers
|
|
|
|
import (
|
|
"git.golem15.com/golem15/summercms/docs/examples/blog/models"
|
|
"git.golem15.com/golem15/summercms/modules/pact"
|
|
)
|
|
|
|
var (
|
|
_ pact.AdminController = postsAdmin{}
|
|
_ pact.AdminRecordSource = postsAdmin{}
|
|
_ pact.AdminPermissioned = postsAdmin{}
|
|
)
|
|
|
|
// postsAdmin is the Go form of the Posts backend controller with the List
|
|
// and Form behaviours.
|
|
type postsAdmin struct{}
|
|
|
|
func (postsAdmin) ID() string { return "acme.blog.posts" }
|
|
func (postsAdmin) ModelName() string { return "Post" }
|
|
func (postsAdmin) ConfigDir() string { return "controllers/posts" }
|
|
|
|
// NewRecord returns the model the generic admin handlers query and fill.
|
|
func (postsAdmin) NewRecord() any { return &models.Post{} }
|
|
|
|
// RequiredPermissions replaces $requiredPermissions: an administrator needs
|
|
// this permission before any schema or record is served.
|
|
func (postsAdmin) RequiredPermissions() []string {
|
|
return []string{"acme.blog.access_posts"}
|
|
}
|
|
|
|
// PostsController returns the acme.blog.posts admin controller.
|
|
func PostsController() pact.AdminController { return postsAdmin{} }
|