Settings
This section covers Portal roles, permissions and other settings.
Configure Portal Settings
To manually configure Portal settings, refer to HowTo: Update Portal Settings.
Portal settings are stored as Variables.
In development, it is a quite tedious task to configure Portal settings after
restarting Designer. Therefore, update your variables in
portal/config/variables.yaml
for the settings that you want to configure.
This survives restarting Designer.
Language Settings
To add a new language to the Portal, what you have to do is:
- Export all CMS entries of the Portal to an Excel file.
- Add one new column to the end of this file, then add the new language locale for example it
for the Italian language to the first cell of this new column. Refer to Java supported locales for the supported locales.
Add the translations for the new language for all CMS entries.
Import the Excel file.
Redeploy the Portal.
Role Configuration
Portal roles |
Rights |
---|---|
AXONIVY_PORTAL_ADMIN |
User having to this role can access the Portal Admin page, configure internal role properties, and create public filters. Users who own this role need some permissions. |
Permission Settings
Configure permissions in the Engine Cockpit. In the security area, you will find all these permission in group “PortalPermissions”.
Task Permissions
Add note
User needs permission:
PortalPermission.TASK_CASE_ADD_NOTE
.Delegate
To be able to delegate, the user needs permission
PortalPermission.TASK_DISPLAY_DELEGATE_ACTION
.To delegate personal or group tasks, user needs permission
TaskWriteActivatorOwnTasks
. This permission belongs to the PortalPermissions group. It is not assigned to role Everybody by default.To delegate all tasks in a task list, the user needs permission
IPermission.TASK_WRITE_ACTIVATOR
.Important
Only tasks ready for user processing can be delegated. Therefore, the task state cannot be one of the following: CREATED, DONE, DESTROYED, RESUMED, FAILED.
Reset
To see the reset action, the user needs permission
PortalPermission.TASK_DISPLAY_RESET_ACTION
.To reset tasks, the user needs permission:
IPermission.TASK_RESET_OWN_WORKING_TASK
orPortalPermission.TASK_RESET_READY_FOR_JOIN
orIPermission.TASK_RESET
.Important
This only works for tasks in one of following states: RESUMED, PARKED, READY_FOR_JOIN, FAILED.
Delete
To see the Delete Task action, the user needs permission
IPermission.TASK_DESTROY
.Important
Delete Task only works if the task state is not already DESTROYED or DONE.
Reserve
To see the Reserve action, the user needs permission
PortalPermission.TASK_DISPLAY_RESERVE_ACTION
.To reserve a task, the user needs permission
IPermission.TASK_PARK_OWN_WORKING_TASK
.Important
Reservation is only possible if the task is in one of the following states: CREATED, RESUMED, SUSPENDED.
Change description
User needs permission:
IPermission.TASK_WRITE_DESCRIPTION
.Important
A terminated task cannot be changed. Therefore, the task state cannot be one of the following values: DONE, DESTROYED, FAILED.
Change deadline
User needs permission
IPermission.TASK_WRITE_EXPIRY_TIMESTAMP
.Important
To change an expiry date, the task cannot be in one of the following states: DONE, DESTROYED, FAILED.
Change priority
User needs permission
IPermission.TASK_WRITE_ORIGINAL_PRIORITY
.Important
To change task priority, the task cannot be in the following states: DONE, DESTROYED, FAILED.
Display additional options
To see additional actions, the user needs permission
PortalPermission.TASK_DISPLAY_ADDITIONAL_OPTIONS
.
Case Permissions
Add note
User needs permission
PortalPermission.TASK_CASE_ADD_NOTE
.Delete
User needs permission
IPermission.CASE_DESTROY
.Important
Case state has to be RUNNING.
Change description
User needs permission
IPermission.CASE_WRITE_DESCRIPTION
.Important
Case state cannot be DESTROYED.
See related tasks of case
To see the related tasks action, the user needs permission
PortalPermission.SHOW_ALL_TASKS_OF_CASE
.To see related tasks, user needs permission
IPermission.TASK_READ_OWN_CASE_TASKS
orIPermission.TASK_READ_ALL
.Important
Case state cannot be DESTROYED.
Display show detail link
User needs permission
PortalPermission.SHOW_CASE_DETAILS
. By default, this permission is not assigned to role Everybody.
Normal users can only see the tasks and cases that they can work on.
Administrators can see all tasks/cases in the application. The require
Permissions IPermission.TASK_READ_ALL
, IPermission.CASE_READ_ALL
.
Administrators can interact with all workflows in the application.
Administrators can create, update and delete all workflows in the application.
Normal users can update and delete workflows that have been created by them and can interact with tasks that have been assigned to them.
Other Permissions
Action |
Permission required |
|
---|---|---|
Absence |
Read |
|
Create, edit |
|
|
Delete |
|
|
Read absences of all users |
|
|
Delete absences of all users |
|
|
Create new absence for all users |
|
|
Substitute |
Manage substitute |
|
Document |
Upload, delete |
|
Express |
Create Express workflow |
|
Statistics |
Add dashboard |
|
Analyze, filter tasks and export data to excel for advanced analysis |
|
|
Portal permission |
Access to full process list, it’s “Processes” on the left menu and link “Show all processes” on Dashboard |
|
Access to full task list, it’s “Tasks” on the left menu and link “Show full task list” on Dashboard |
|
|
Access to full case list, it’s “Cases” on the left menu |
|
|
Access to statistics it’s “Statistics” on the left menu and link “Show all charts” on Dashboard |
|
|
Add note to task/case |
|
|
Display show more note |
|
|
Create public external link, all other users can see that link in full process list and can also add it to User Favorite |
|
Virus Scanning Settings
PrimeFaces is delivered with one implementation of the interface that uses VirusTotal. To enable VirusTotal you need to create a community account at the VirusTotal website. You receive an API key once you have an account. To configure the API key add the following snippet to the configuration/web.xml file:
<context-param> <param-name>primefaces.virusscan.VIRUSTOTAL_KEY</param-name> <param-value>PUT YOUR API KEY HERE</param-value> </context-param>
By default, after you configured the context-param in the web XML file, the
Virus Scanning is enabled. You can change the variable EnableVirusScanner
to
false
in portal/config/variables.yaml
if you want to disable virus scanning.
Reference: How to check if uploaded files contain a virus.
Warning
Files that are checked for viruses are uploaded to VirusTotal. If you may not store the data of your application on servers outside the internal network or a given country, you might want to refrain from using this solution.
Variables
These variables are stored as key-value pairs. They have to be edited in the Engine Cockpit.
Variable |
Default value |
Description |
---|---|---|
PortalStartTimeCleanObsoletedDataExpression |
0 0 6 * * ? |
Cron expression defines
the time to clean up data
of obsolete users. E.g.:
expression for at 6AM
every day is
|
PortalDeleteAllFinishedHiddenCases |
false |
If set to |
PortalHiddenTaskCaseExcluded |
true |
By default, Portal will
query tasks and cases
which are not hidden. If
set to |
PortalLoginPageDisplay |
true |
By default, Portal will
redirect to Login Page if
login is required and the
user is unknown.
Set to |
Configuration
These variables are stored in JSON format. You can edit them in the cockpit, or use the UI on the Portal Admin settings.
Portal Announcement
The standard announcement for Portal is intended to be used for general information (e.g. Downtime, Changes, etc.). This message can be seen by all Portal users.
Filename: variables.Portal.Announcement.json
Data model:
{ "contents": [{
"language": "en",
"value": "The announcement content in english"
}],
"enabled": false
}
contents
: list of supported languages and content for each language.language
: the language code such asen
,de
,es
, andfr
value
: the announcement content of that language
enabled
: the status of the announcement, true shows the announcement
Third Party Applications Linked Into Portal
You can define your custom menu item in the following JSON file. It will be included in the left menu.
Filename: variables.Portal.ThirdPartyApplications.json
Data model:
[{ "id": "284352a58c7a48a2b64be8a946857c7a",
"displayName": "{\"de\":\"AxonIvy ger\",\"en\":\"AxonIvy\"}",
"menuIcon": "fa-group",
"menuOrdinal": 1,
"name": "{\"de\":\"AxonIvy ger\",\"en\":\"AxonIvy\"}",
"link": "https://developer.axonivy.com/download",
}
]
id
: the identification number of a third-party application. It is an auto-generated UUID.displayName
: the display name of the app that is shown in the left menu. Supports multi-language.menuIcon
: the style class of the app icon that shows in the left menu.menuOrdinal
: index of the app. Used to sort menu items in the left menu.name
: the name of third-party app.link
: the URL of third-party app.
Portal Statistic Charts
You can define the standard statistic charts via the following JSON file. They will be shown as the default charts on the statistic page.
Filename: variables.Portal.StatisticCharts.json
Data model:
[{ "id": "42e2d9afd9824abc8d3a70b9d9867dba",
"names": [{
"locale": "en",
"value": "Task chart"
}],
"type": "TASK_BY_EXPIRY",
"filter": {
"timePeriodSelection": "LAST_WEEK",
"createdDateFrom": null,
"createdDateTo": null,
"selectedCaseCategories": ["Alpha_Company"],
"selectedRoles": ["Everybody"],
"isAllRolesSelected": false,
"selectedCaseStates": ["RUNNING"],
"isAllCaseStatesSelected": false,
"selectedTaskPriorities": ["HIGH"],
"isAllTaskPrioritiesSelected": false,
"customFieldFilters": {
"CustomVarCharField": ["Request for new computer"],
}
},
"position": 1
}]
id
: the identification of chart. An auto-generated UUID.names
: the multilingual display name of the chart.type
: type of chart such asTASK_BY_PRIORITY
,CASES_BY_STATE
,CASES_BY_FINISHED_TASK
,CASES_BY_FINISHED_TIME
,TASK_BY_EXPIRY
andELAPSED_TIME_BY_CASE_CATEGORY
filter
: list filters to apply for each charttimePeriodSelection
: type of period filter such asCUSTOM
,LAST_WEEK
,LAST_MONTH
andLAST_6_MONTH
createdDateFrom
: start time for custom period filtercreatedDateTo
: end time for custom period filterselectedCaseCategories
: case category filterselectedRoles
: role filterisAllRolesSelected
: indicator to inform if all roles are selected.selectedCaseStates
: case state filterisAllCaseStatesSelected
: indicator to inform if all case states are selected.selectedTaskPriorities
: task priority filterisAllTaskPrioritiesSelected
: indicator to inform if all priorities are selected.customFieldFilters
: list CustomField name filters, define byICase.customFields()
CustomVarCharField
: name ofICase.customFields()
position
: position index of chart. Used to order the charts in the UI
Portal Dashboard Favorite Processes
You can include the favorite processes of your custom application via the following JSON file. It will be shown as the processes in the application favorite section.
Filename: variables.Portal.Dashboard.FavoriteProcesses.json
Data model:
[{ "id": "234152a58c7a48a2b63be8a946e5731b",
"processType": "IVY_PROCESS",
"names": [
{
"locale": "de",
"value": "Investition anlegen"
},
{
"locale": "en",
"value": "Create Investment"
},
{
"locale": "fr",
"value": "Réaliser un investissement"
},
{
"locale": "es",
"value": "Crear investición"
}
],
"icon": "fa-building",
"processId": "Portal/portal-developer-examples/Start Processes/IFrameExample/CreateInvestment.ivp",
"index": 1
}]
id
: the identification of a process. auto-generated UUID.processType
: type of a process such asEXPRESS_PROCESS
,EXTERNAL_LINK
,IVY_PROCESS
.names
: the display name of a process. Multilingual name is supported.icon
: the style class of the process icon.processId
: the process id of the process start.index
: the index number to order the processes in the dashboard.
Portal Processes External Links
The standard external links of the Portal are defined in the following file:
Filename: variables.Portal.Processes.ExternalLinks.json
Data model:
[{ "id": "01322912db224658a222804802844a7b",
"name": "Download latest Axon Ivy",
"link": "https://developer.axonivy.com/download",
"creatorId": 2,
"icon": "fa-paperclip",
"description": "https://developer.axonivy.com/download"
}]
id
: the identification of a link, auto-generated by UUIDname
: the display name of a linklink
: the URL of the linkcreatorId
: the user id who create the linkicon
: the style class of the link icondescription
: the description of a link
Portal Express Processes
The standard express processes of the Portal are defined in this file:
Filename: variables.Portal.Processes.ExpressProcesses.json
Data model:
[{ "id": "f281e1ee7fb54bcda8d7a0c64ba46fc8",
"processName": "Portal Express process",
"processDescription": "Process",
"processType": "AHWF",
"processPermissions": ["Everybody"],
"processOwner": "#portaladmin externalId:889",
"processFolder": "8e9870b2-0179-46eb-bdb8",
"readyToExecute": true,
"processCoOwners": ["#demo externalId:9CA"],
"icon": "fa-codepen",
"taskDefinitions": [{
"type": "USER_TASK",
"responsibles": ["Everybody"],
"subject": "Express user task",
"description": "Express user task",
"taskPosition": 1,
"untilDays": 2,
"formElements": [{
"elementID": "Input area2020-09-07 04:57:05",
"label": "Input area",
"required": true,
"intSetting": 7,
"elementType": "InputTextArea",
"optionStrs": [""],
"elementPosition": "HEADER",
"indexInPanel": 0
}]
}, {
"type": "EMAIL",
"responsibles": [],
"taskPosition": 2,
"untilDays": 3,
"email": {
"recipients": "wawatest@ivy.io",
"responseTo": "wawa@mail.io",
"subject": "Verify Express process",
"content": "<p>Email content</p>",
"attachments": [],
"empty": false
}
}
],
"ableToEdit": true,
"useDefaultUI": false
}]
id
: the identification of an express process, auto-generated by UUIDprocessName
: the display name of an express processprocessDescription
: the description of an express processprocessType
: type of express processes such asAMWF
andAHWF
processPermissions
: the process permissions who can see this express processprocessOwner
: the user information who create this express processprocessFolder
: the folder id where the express process use to store datareadyToExecute
: indicator to inform that process can start or notprocessCoOwners
: the user information who can see this express processicon
: the style class of express icontaskDefinitions
: list tasks of the express processtype
: type of the express task such asUSER_TASK
,USER_TASK_WITH_EMAIL
,APPROVAL
, andEMAIL
responsibles
: responsible for the express task who can work on the tasksubject
: the name of an express taskdescription
: the description of an express tasktaskPosition
: the index of a task in the express workflow stepsuntilDays
: the expiry day of an express taskformElements
: list forms on the UI of the express taskelementID
: auto-generatedlabel
: the label of the elementrequired
: indicator to inform that form element is required or notintSetting
: auto-generatedelementType
: type of elementoptionStrs
: select options of an elementelementPosition
: the position of an element on UIindexInPanel
: auto-generatedemail
: define an email taskrecipients
: the recipients of the emailresponseTo
: response to the emailcontent
: the content of the emailattachments
: list attachmentsempty
: indicator to inform that attachment is empty
ableToEdit
: indicator to inform that express can edituseDefaultUI
: indicator to inform that express process is using default UI elements