Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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:

Codeblock
admin_role.values[] = ""
admin_role.values[] = "employee"
admin_role.values[] = "shipping_company"

admin_role.value.                 = "Super Admin"
admin_role.value.employee         = "Employee"
admin_role.value.shipping_company = "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:

Codeblock
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

user.query = entrytype='shipping_company' or entrytype='employee' or entrytype='customer'

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:

Codeblock
gui.areas = ShowUser EditUser ListUsers CreateUser ListChannels ListVChannels NewsletterArchive SendNewsletter NewsletterQueue
attr.entrytype.values = truck customer
area.SendNewsletter.EditTags = false

user.query = entrytype='truck' or entrytype='customer'

Symlink Admin Roles

And again we have to comment in the other line in our build.gradle:

Codeblock
languagegroovy
    fileTree('cmsbs-conf/entryTypes').each {target ->
        ln(target, new File(pinuts.um.cmsbsConfDir, 'entryTypes'))
    }
    fileTree('cmsbs-conf/adminRoles').each {target ->
        ln(target, new File(pinuts.um.cmsbsConfDir, 'adminRoles'))
    }

Create Admin Entry

Next, we’ll have to create at least one initial admin user to be able to login again:

Codeblock
languagebash
(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.