To ensure that a plugin is recognized and displayed on your intranet, you need to create a GrailsPlugin
that implements TaackPlugin
.
See here for example: CrewGrailsPlugin.groovy
In this file we configured the following things:
Roles and access
static final List<TaackPluginConfiguration.PluginRole> crewPluginRoles = [
new TaackPluginConfiguration.PluginRole(
"ROLE_CREW_ADMIN",
TaackPluginConfiguration.PluginRole.RoleRanking.DIRECTOR),
new TaackPluginConfiguration.PluginRole(
"ROLE_CREW_MANAGER",
TaackPluginConfiguration.PluginRole.RoleRanking.MANAGER),
new TaackPluginConfiguration.PluginRole(
"ROLE_CREW_USER",
TaackPluginConfiguration.PluginRole.RoleRanking.USER),
]
crewPluginRoles
is a list of PluginRole
objects that associate roles
from springSecurityService with a RoleRanking
. The RoleRanking ranges from the lowest access level (USER) to the highest access level (DIRECTOR).
Link classes
static final List<TaackPluginConfiguration.TaackLinkClass> linkClasses = [
new TaackPluginConfiguration.TaackLinkClass(
Attachment.class,
'publicName',
AttachmentController.&showAttachment as MC)
]
linkClasses
contains a list of TaackLinkClass
that defines classes to be linked from other objects and their default behavior(Attribute displayed as name and controller action to redirect to). In this example, we specify that the Attachment class should be displayed in other classes using its publicName attribute, and the redirection should be set to the showAttachment action.
Plugin configuration
static final TaackPluginConfiguration pc = new TaackPluginConfiguration(
"Crew",
"/crew/crew.svg", "crew", Language.values() as List,
new TaackPluginConfiguration.IPluginRole() {
@Override
List<TaackPluginConfiguration.PluginRole> getPluginRoles() {
crewPluginRoles
}
})
This is the section where we configure the application’s name, icon, package, and available language. It is also where we specify that the plugin uses the previously defined PluginRole and LinkClasses lists. In this case, we only populate the PluginRoleList.