Introduction
Administrator in 4.5 have access to menu items (Admincentral pages) defined via ACLs. Now we have apps instead of pages in Magnolia 5. We have to provide update task to convert these permissions.
Mapping of Pages
Old URL | New app | Module | Ticket |
---|---|---|---|
/modules/adminInterface/config/menu/dms | /modules/dam/apps/assets | dam | MGNLDAM-318 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/data/Contact | /modules/contacts/apps/contacts | contacts-app | CNTCTSAPP-57 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/data/category | /modules/categorization/apps/categories | categorization | MGNLCAT-100 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/templating-kit | /modules/ui-admincentral/config/appLauncherLayoutapps/group/stk | STK | MGNLSTK-1249 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/templating-kit/etkSites | /modules/ui-admincentral/apps/stkSiteApp | STK | |
/modules/adminInterface/config/menu/templating-kit/stkThemes | /modules/ui-admincentral/apps/stkThemesApp | STK | |
/modules/adminInterface/config/menu/templating-kit/stkDialogs | /modules/ui-admincentral/apps/dialogs | STK | |
/modules/adminInterface/config/menu/templating-kit/stkChannels | /modules/ui-admincentral/apps/channels | STK | |
/modules/adminInterface/config/menu/templating-kit/stkTemplateDefs | /modules/ui-admincentral/apps/stkTemplateDefsApp | STK | |
/modules/adminInterface/config/menu/templating-kit/templates | /modules/ui-admincentral/apps/templatesApp | STK | |
/modules/adminInterface/config/menu/templating-kit/resources | /modules/ui-admincentral/apps/resourcesApp | STK | |
/modules/adminInterface/config/menu/website | /modules/pages/apps/pages | pages-app | MGNLUI-2268 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/data/company | /modules/ui-admincentral/apps/CompanyApp | ui-admincentral | |
/modules/adminInterface/config/menu/data | /modules/ui-admincentral/config/appLauncherLayoutapps/group/data | ui-admincentral -> data | |
/modules/adminInterface/config/menu/security | /modules/apps/security-app/ | security-app | |
/.magnolia/trees/website-jcr | /modules/ui-admincentral/apps/websiteJcrBrowser | ui-admincentral | |
/.magnolia/pages/configuration | /modules/ui-admincentral/apps/configuration | ui-admincentral | |
/modules/adminInterface/config/menu/tools | /modules/ui-admincentral/config/appLauncherLayoutapps/group/tools /modules/ui-admincentral/config/appLauncherLayoutapps/group/dev This menu is now splitted into these two -> we need Task with multiple newApp paths | ui-admincentral | |
/.magnolia/pages/messages* | /modules/messages-app/apps/messages | messages-app | |
/modules/adminInterface/config/menu/inbox | |||
Modules in process of migration | |||
/.magnolia/pages/sendMail* | /modules/mail/apps/mailTools | MGNLMAIL-21 - Getting issue details... STATUS | |
/modules/adminInterface/config/menu/data/RssAggregator | /modules/ui-admincentral/apps/RssAggregatorApp | rssaggregator | MGNLRSSAGG-108 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/tools/groovyInteractiveShell | /modules/ui-admincentral/apps/groovyConsole | groovy | MGNLGROOVY-83 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/templating-kit/templates | /modules/inplace-templating/apps/inplace-templating | inplace templating | MGNLINTEMPL-37 - Getting issue details... STATUS |
/modules/adminInterface/config/menu/templating-kit/resources | /modules/ui-admincentral/apps/resourcesApp | resources | MGNLRES-70 - Getting issue details... STATUS |
Modules not yet migrated | |||
/.magnolia/pages/cacheTools* | /modules/ui-admincentral/apps/cacheTools | cache | MGNLCACHE-23 - Getting issue details... STATUS |
/.magnolia/pages/configuration* | /modules/ui-admincentral/apps/configInfo | ui-admincentral | MGNLUI-2288 - Getting issue details... STATUS |
/.magnolia/pages/export* | /modules/ui-admincentral/apps/export | ui-admincentral | |
/.magnolia/pages/import* | /modules/ui-admincentral/apps/import | ui-admincentral | |
/.magnolia/pages/jcrUtils* | /modules/ui-admincentral/apps/jcrQueryUtils | ui-admincentral | |
/.magnolia/pages/developmentUtils* | /modules/ui-admincentral/apps/devTools | ui-admincentral | |
/.magnolia/pages/permission* | /modules/ui-admincentral/apps/permissions | ui-admincentral | |
/.magnolia/pages/logViewer* | /modules/ui-admincentral/apps/logViewer | ui-admincentral | |
/.magnolia/pages/configuration* | /modules/ui-admincentral/apps/configInfo | ui-admincentral | |
Pages not in 5.x yet | |||
/.magnolia/pages/migrationReport* |
| ||
/.magnolia/pages/activationTools* | |||
/.magnolia/pages/users* | |||
/modules/adminInterface/config/menu/forum | |||
/.magnolia/pages/backup* | |||
/.magnolia/pages/activationMonitor* | |||
/.magnolia/pages/allModulesList* | |||
/.magnolia/pages/flows* | |||
/.magnolia/pages/dependencies* | |||
/.magnolia/pages/password-reminder* | |||
/.magnolia/pages/user-validation* | |||
/.magnolia/pages/register* | |||
/.magnolia/pages/installedModulesList* | |||
/modules/adminInterface/config/menu/data/types | |||
/modules/adminInterface/config/menu/data/navigate | |||
/modules/adminInterface/config/menu/data/config |
Tasks
Convert 4.5 Admincentral ACLs to apps permissions
GOAL: Proper permission to apps, old ACLs removed.
REQUIREMENTS:
- none
STEPS:
- Run query in userroles workspace for finding all ACL nodes with certain pattern.
- Convert these ACLs to apps permission.
- Remove these ACLs from userrolesworkspace.
- the permissions are in pairs for page and subpage, so we need to remove both permissions (path, path/*)!
EXAMPLE 1 - ACCESS GRANTED:
- the URL ACL for role_admin is set to:
- path: /.magnolia/configuration
- permission GET/POST
- the new app permissions will be:
- permissions
- roles
- role_admin
- role_admin
- roles
- permissions
- how to create task:
new ConvertACLtoAppsPermissionTask
("name", "description", "/.magnolia/configuration", /modules/ui-admincentral/apps/configuration);
EXAMPLE 2 - ACCESS DENIED:
- the URL ACL for role_editor is set to:
- path: /.magnolia/configuration
- permission DENY
- the new app permissions should be set to:
- permissions
- roles
- superuser
- roles
- permissions
Class: ConvertACLtoAppsPermissionTask
Constructor attributes:
Property | Description | Valid values |
---|---|---|
taskName | Task name used by the reporting tool, and to log/display informations related to this task. | String |
taskDescription | Task Description used to display informations in the admin. central update view. | String |
oldUrl | url to an old page | String |
newApp | path to configuration of new app | String |
Questions (ehe)
How to map the 4.5 path to M5 application or sub app?:
- /modules/adminInterface/config/menu/inbox
- /modules/inplace-templating/
- /modules/resources/*
- /modules/adminInterface/config/menu/templating-kit
Answers
I think any automatically mapping wouldn't be possible. But we know the default old 45 paths for Magnolia pages and corresponding paths to new apps. If someone have a page under different location or if someone have any custom pages, he would need only to add ConvertACLtoAppsPermissionTask
to his ModuleVersionHandler. He need to create new app anyway in case of a custom page and the name of his app can by anything so we can't rely only on app names.
- If someone have access to /modules/adminInterface/config/menu/inbox then we know he need access to Messages:
ConvertACLtoAppsPermissionTask
("", "", "/.magnolia/pages/inbox", /modules/messages-app/apps/messages ) - /modules/inplace-templating:
ConvertACLtoAppsPermissionTask
("", "", "/.magnolia/pages/configuration*", /modules/ui-admincentral/apps/templatesApp) - /modules/resources/*:
ConvertACLtoAppsPermissionTask
("", "", "/.magnolia/pages/configuration*", /modules/ui-admincentral/apps/resourcesApp) - /modules/adminInterface/config/menu/templating-kit:
ConvertACLtoAppsPermissionTask
("", "", "/modules/adminInterface/config/menu/templating-kit", /modules/ui-admincentral/config/appLauncherLayoutapps/group/stk)
The tasks should be added in version handlers which bootstrap certain app. Most of them would be in AdmincentralModuleVersionHandler. Others..like tools should be in corresponding modules (for example access to groovy console should be set from groovy version handler).
We can have parent task which takes map<oldURL, newApp> so we add only one task in case of a lot of URLs to convert.