In this section we want to introduce Admin Roles to provide our different backend users with role-based permissions.
We have three different user roles:
Super admin users,
employees and
representatives of partnering shipping companies.
Define admin roles
cmsbs-conf/conf.d/admin_role.attributes
:
admin_role.values[] = "" admin_role.values[] = "employee" admin_role.values[] = "shipping_company"
Employees
Employees should be able to:
View, edit and create Entries (shipping companies, employees and customers),
view, edit and create Lists (aka Channels),
view existing Segments (aka VChannels) and
send Newsletters.
cmsbs-conf/adminRoles/role_employee.properties
:
gui.areas = ShowUser EditUser ListUsers CreateUser ListChannels EditChannels ListVChannels NewsletterArchive SendNewsletter NewsletterQueue attr.entrytype.values = shipping_company employee customer area.CreateUser.employee = false area.EditChannels.EditTags = false area.SendNewsletter.EditTags = false
Representatives of shipping companies
Representatives or partnering shipping companies should be able to:
View, edit and create Entries (trucks and customers),
view existing Lists and Segments (aka Channels and VChannels) and
send Newsletters.
cmsbs-conf/adminRoles/role_shipping_company.properties
:
gui.areas = ShowUser EditUser ListUsers CreateUser ListChannels ListVChannels NewsletterArchive SendNewsletter NewsletterQueue attr.entrytype.values = truck customer area.SendNewsletter.EditTags = false
Login Mode: internal
So far, we have logged-in against the “user database” defined in a config file:
env/devel/cmsbs-conf/conf.d/devel.login.properties
:
cmsbs.gui.login = "config" cmsbs.gui.user.1 = "admin:admin:Admin-User:de:"
Now, we want to switch over to the internal login mode to be able to interactively create and use new backend users. We’ll change the value of cmsbs.gui.login
from config
to internal
.
And again we have to comment in the other line in our build.gradle
ln('cmsbs-conf/adminRoles', pinuts.um.cmsbsConfDir) ln('cmsbs-conf/entryTypes', pinuts.um.cmsbsConfDir)
After that we have tp drop the database and restart again.
Next, we’ll have to create at least one initial admin user to be able to login again:
(cd UM/scripts && ./userTool.sh cmsbs.properties -admin)
Now, we can start our UM and login as admin
/ admin
(if you chose the default username and password).
We can now create new user entries and assign our newly implemented admin roles.