Access control by roles is managed by Group Design. The Calem desktop UI is improved for group design mode thanks to customer feedbacks. Use "Group Design" to manage modules and menu available for modules.
- Go to "Admin" module (click "Admin" from the left module bar, or top module bar).
- Go to the Group list. Each group represents a role.
- Check the checkbox of a group for group design (for instance, "Service-Tech" in the screenshot).
- Click "Group design" menu button of the group list form to launch group design mode.
"Group design" menu launches Calem desktop into the design mode for "Service-Tech" group.
- The top band of the desktop is turned yellow.
- The group selected for group design ("Service-Tech") is shown in red.
- The group is not shown in the top band if module bar is docked at the top.
- The left module bar is changed to show three modules granted to the "Service-Tech" group.
- All the customization will be done for the group selected while the group form is left open.
- When the group form is closed the group design mode is terminated.
1. Pick the Group for Group Design
The rules to select a group to do design are:
- If you know which group to modify, select that group for "Group design".
- If not, you may select "Custom system" to change for all users unless a customization is overwritten by a child group.
- Otherwise, you may select your own login group (see the screenshot below) for "Group design'.
2. Modules Access Setup
Module Access Setup defines what modules are available to a group. Click "Module accessible" menu button in the "Group modules" list form above to launch module access setup screen below.
- The left panel shows modules that are not accessible to the group
- The right panel shows the modules granted to the group
- Drag a module from right panel and drop on "Module Design" of the left panel to remove a module for the group
- Drag a module from left and drop on "Module Design" of the right panel to add a module to the group.
- Order modules accessible in the right panel by drag-and-drop a module to another module. For instance, drag "Service Request" and drop on "Work Order" will move the "Service Request" module to show before "Work Order" module.
- When you are done, click "Save" in the left panel to save the modules accessible to the "Service-Tech" group.
3. Module Menu Access Setup
Module Menu Access Setup defines what menu items are available to a group.
- Click a module row in the group design list form to select a group. For instance "Work Order" module row is clicked.
- Menu "Module Design" is activated. Click this menu to set up menu items available for the group.
The "Module Design" menu button launches the module function design form below. You can tailor a module's function for the group:
- Remove a menu (1) or a menu folder (2) by drag a menu/folder in the right panel and drop on the "Module Design" node in the left panel.
- Add a menu (3) or a folder to the group by drag and dropping a menu/folder from the right panel and drop on "Module layout" in the right panel.
- Order a menu item (4) in the right panel by drag and drop it to another menu or a folder.
- Drag and drop a menu to "Default menu item" to make a menu item (5) the default menu to use when the module is clicked from the left module bar. For instance, drag and drop "Open WO" on the "Default menu item" will make "Open WO" form to open when work order module is clicked.
- Click "Save" in the left panel to save off the module function setup when you are done.
4. Group Design Report
The report is available at Admin | Report | Group Customization. Use this report to find out what has been customized.
- For instance, which groups are customized for module access?
- Query the object for "modlist" to get all the groups.
Another question may be what groups have inventory and barcode module customized. Query object for Inventory (modCmIn) or Barcode (modCmBc) to find out.
You can also query which groups customized Site Inventory forms and reports such as CmInSiteViewEdit, CmInSiteReportList, etc. Query object for "CmInSite" will show all the views/reports customized by groups.
5. Group Hierarchy and Access Control
Groups are hierarchical for efficient management of customization. Here is the process for Calem to find a customization of an object:
- If a group has a customization of an object, use it.
- Otherwise, go to the parent group of the current group, if a customization is found, use it.
- Otherwise, repeat the parent group search.
6. Access Control through Group Design
The steps to restrict access to an object are:
- Remove access to an object at the root group (Custom system) which removes the access to an object by default for all groups.
- For the groups to grant the access to an object, perform a group design to grant the access to an object. So, only designated groups have access to that object.
Two examples are discussed below to demonstrate access control customization.
7. Example 1: Restrict Access to Physical Count Transaction
We will grant access to physical count transactions to "Service-Tech" and "Procuremenu" groups only (see the groups in the screenshot of group tree above). The menu for physical count transaction is highlighted in the menu search tree below. The steps are:
- Group design "Custom system" group
- Remove highlighted physical count menu from Inventory and Barcode modules respectively.
- Group design "Service-Tech" group. Add physical count menu to Inventory and Barcode modules.
- Group design "Procurement" group. Add physical count menu to Inventory and Barcode modules.
- Run Group Customization Report to query the groups with Inventory ("modCmIn") and Barcode ("modCmBc") module customization.
- Group design each group to review the module menu for Inventory and Barcode. Ensure that only "Service-Tech" and "Procurement" group has the menu for physical count transactions.
8. Example 2: Restrict Inventory Auto Re-Order Management
We will grant access to inventory auto re-order control to "Procurement" group only. The fields related to the auto re-order control are highlighted in the form below. The steps are:
- Group design "Custom system" group
- Go to Inventory | Site Inventory List, click an inventory row to open the inventory form.
- Edit the inventory, customize the edit form, drag and drop to remove the highlighted fields for re-order control from the edit form.
- Group design "Procurement" group
- Go to Inventory | Site Inventory List, click an inventory row to open the inventory form.
- Edit the inventory, customize the edit form, drag and drop to add the highlighted fields for re-order control to the edit form if applicable.
- Run Group Customization Report to query the groups with "CmInSiteViewEdit" customization.
- Group design each group to review the re-order control fields. Ensure that only "Procurement" group has the re-order control fields in the inventory edit form.
9. Example 3: Securing Items Creation
In this example, items are the part and service catalog for inventory management. Item creation is only allowed for "Procurement" group. This is implemented through group design and form customization. The first part is to remove item creation from "Custom System" group so it is not available for all groups inheriting from it.
- Group design "Custom system" group
- Customize "Items - Part/Tool" (at Inventory | Items - Part/Tool) and drag and drop "Create" off the form.
- The removal of "Create" from the form ensures no groups will have "Create" menu unless they overwrite the customization of the "Custom system" group.
Next, customize "Procurement" group to add "Create" button to the Items screen.
- Group design "Procurement" group
- Customize "Items - Part/Tool" and drag and drop "Create" to the menu bar of the form. The menu will show at the end of the menu bar. Drag and drop it to the first spot of the menu bar.
- Run Group Customization Report to query the groups with own "CmInViewList" customization.
- Group design each group to review the "Creation" menu. Ensure that only "Procurement" group has the "Create" menu in Items form.
10. Catalog of Module Permissions
A catalog of module permissions includes all the menu (forms and processes). Here are the steps to build out the catalog.
10.1 Admin Profiles
An admin profile has access to all the functions in Calem. A user needs to have an admin profile to build out the catalog.
- For desktop an admin profile is an ACL profile with "Custom system" group assigned as desktop group.
- For Mobile an admin profile is an ACL profile with "Phone" group assigned as Phone and Tablet groups.
10.2 Catalog Matrix
A matrix may be used to catalog the permissions for a module. Each row of the matrix may include a menu in a module, and its drill-down.
- Log into Calem with an Admin profile
- Click the desktop logo (Top-left icon) to display menu tree. See this blog.
- For instance, inventory module tree is shown in the screenshot below.
- One can browse all menu available for inventory in the tree.
- Add an entry to the matrix for each menu in the module menu tree.
- Click each menu to display the form or action associated with it
- If a menu is for a process such as inventory checkout, document the process in the matrix
- If a menu is a data view, document its menu and drill-down below.
- A list form shows a collection of records.
- A list form may include menu to create, delete, view a record, and other actions such as map view.
- Add menu for data actions in your matrix such as create and deletion.
- Click a row in a list may launch a record form or launch an action.
- See notes below to document record forms.
- A list form may include links in the list to jump to lookup record forms.
- Click a link to reveal its data views.
- A record form may include menu to edit a record, modify status, and other actions.
- Add menu for data actions to your matrix.
- A record form may display links to jump to other data forms.
- A record form may tabs. Each tab may include list forms showing data associated.
- Click an "Edit" button to launch edit form if available.
- An edit form display fields that are editable.
- Add critical fields to your matrix based on business requirements.