Roles
The Request Download Approval features introduces 2 new roles:
Download_Approval_Admin - gives a user the ability to modify the request download approval configurations
Download_Approval_Bypass - allows a user to download an asset, bypassing the approval process
Prerequisites
In order for a user to have the ability of request the download of an asset, they need to have the roles ‘Asset_Can_Download' and ‘Business_Workflow_Instance_Transition'. They also need the download qualities as they normally would, if download approval wasn’t enabled.
The business workflow used for the approval process needs to fulfill all of the following conditions:
It needs at least three stages. One for “Pending”, one for “Approved”, and one for “Denied“. We advise you to call them this for maintainability, however, it’s not required.
The first transition needs to at least have the constraint “Only Instance Owner Can Transition“, else the users will get an error when they try to instantiate. (For admins, we have a role to bypass this “Only Instance Owner…“ constraint, and it’s called “Business_Workflow_General_Transition_Executor“. Again, only assign this to admins, as all “Only…“ constraints will be bypassed with this.)
We allow for other constraints on this first transition. Some set up “input constraints“, which are data the requestor will be asked to fill out to request a transition.
The currently supported input constraints are: String, Int, and Date. Below is an image of how String and Date look for the end user
In the end, your download request workflow should look something like the following:
Some people add onto this base design, and for example allow for a appeal of a request - which would look like the following:
Configuration
In MM5, navigate to the Settings pages, and select the option “Download approval“ from the left side menu.
In the newly opened page you can enable the download request approval and select which business workflow to be used for the approval process.
On this page, you can configure whether it should be enabled, which business workflow it should use as its foundation, and optionally choose whether certain formats should be whitelisted - and - optionally choose if a metadata field should control whether whole assets should be whitelisted for download. (See image below)
Bypassing download approval
There are three ways of bypassing download approval when it’s enabled.
1. Bypass based on a boolean metadata field
As mentioned earlier, on the download approval settings page, you have the option select a boolean metadata field to determine if an asset is opened up for all who have the download role.
Simply, go to the download approval settings page, and in the option 'Select metafield' choose your boolean (bit) metadata field.
2. Bypass based on media formats
The last option for bypassing is to select certain formats that can always be downloaded, of course, only as long as the users have the proper download qualities and roles.
Again, access the approval settings page, and in the option ‘Media formats' select the media format(s) you’d like not to receive download requests for.
3. Role
Add the role 'Download_Approval_Bypass' to a user or a group. This will grant the affected user(s) the ability to bypass all download approval restrictions.
Require download approval
Like we have the ability to bypass download approval, we also offer the inverse of this - which is the require download approval.
For this, we have two options:
1. Require based on a boolean metadata field
Setting require for metadata fields, will allow you to choose a boolean metadata field to listen for. If it set, all users need to request download for the affected asset.
2. Require based on media formats
Setting require for media formats, will have all assets' formats, but the selected format, downloadable without having to request.
Combining the bypass and media formats
Formats = Require
Starting point (2)
People can download all assets for all formats. Basically, download requests are turned off. This combination is therefore not recommended. | Change Metafield (2)
People can download all assets for all formats. Basically, download requests are turned off. This combination is therefore not recommended. |
Change Formats data
| Change Formats data + Metafield
|
Formats = Bypass
Starting point (1)
People will have to request to download all assets for all formats | Change Metafield (1)
People will have to request to download all assets for all formats |
Change Formats data
| Change Formats data + Metafield
|
Metafield = Bypass
Starting point (2)
People can download all assets for all formats. Basically, download requests are turned off. This combination is therefore not recommended. | Change Formats (1)
People will have to request to download all assets for all formats |
Change metafield data (6)
People can download all assets for all formats. Setting the bit field does nothing. This combination is therefore not recommended. | Change metafield data + Formats (4)
People will have to request to download all assets for all formats. Unless they set the bit field to true. |
Metafield = Require
Starting point (2)
People can download all assets for all formats. Basically, download requests are turned off. This combination is therefore not recommended. | Change Formats (1)
People will have to request to download all assets for all formats |
Change metafield data (5)
People can download all assets for all formats. Unless setting the bit field to true which will make it require a download request | Change metafield data + Formats (3)
People will have to request to download all assets for all formats. Setting the bit field does nothing. This combination is therefore not recommended. |
Scenario 1
Metafield = Bypass/Require
Metafield data = [Empty]
Formats = Bypass
Formats data = [Empty]
People will have to request to download all assets for all formats
Scenario 2 (Not recommended)
Metafield = Bypass/Require
Metafield data = [Empty]
Formats = Require
Formats data = [Empty]
People can download all assets for all formats.
Basically, download requests are turned off. This combination is therefore not recommended.
Scenario 3 (Not recommended)
Metafield = Require
Metafield data = Bit field
Formats = Bypass
Formats data = [Empty]
People will have to request to download all assets for all formats.
Setting the bit field does nothing. This combination is therefore not recommended.
Scenario 4
Metafield = Bypass
Metafield data = Bit field
Formats = Bypass
Formats data = [Empty]
People will have to request to download all assets for all formats.
Unless they set the bit field to true.
Scenario 5
Metafield = Require
Metafield data = Bit field
Formats = Require
Formats data = [Empty]
People can download all assets for all formats.
Unless setting the bit field to true which will make it require a download request
Scenario 6 (Not recommended)
Metafield = Bypass
Metafield data = Bit field
Formats = Require
Formats data = [Empty]
People can download all assets for all formats.
Setting the bit field does nothing. This combination is therefore not recommended.
Scenario 7
Metafield =
Metafield data =
Formats =
Formats data =
Scenario 8 (Not recommended)
Metafield = Require
Metafield data = Bit field
Formats = Bypass
Formats data = JPG small
People will have to request to download all assets for almost all formats.
JPG small can be downloaded without requesting, however.
Setting the bit field will do nothing.
Setting up users to be able to initiate download requests
In order to enable users who could previously download to still be able to download after you enable download requests, said users need some additional roles to start requesting.
The users already have “Asset_Can_Download” and the necessary download qualities configured, which is good as this is still needed.
They’ll need the following two roles added to them additionally “Business_Workflow_Instance_Transition“ and “Business_Workflow_Instance_View“.
Now, they’ll see the following “Request download“ the first time they download an asset
Once the asset has been approved, the user will be able to download the requested assets in all the formats that the user has access to.