The Report Center is a no-code business solution that leverages the Document Set content type and a reusable 2010 workflow to change the permissions when a Document Set's properties are changed.
The primary benefit of building this type of solution is that it enables the contributors to manage the permissions as they create new types of reports, while not risking the entire site's exposure to people who should only access certain sets of documents.
This solution will help to eliminate SharePoint sprawl by restricting users from creating hundreds of sites to share restricted documents with small sets of people often cross department and with executives who may not be tech savvy.
Benefits for the document and editors
• Ease in adding and removing people from the viewers and editor permissions
• Transparency to the permissions without having to click multiple … (edit) links to view permissions
Benefits for the report viewers
• The landing page will dynamically generate a view of all reports the user has access to in descending order by date
• Eliminates the need to click through layers of folders to access content
In this post, I will detail the steps to create the solution. This solution assumes you are using the Content Type Hub and will be deploying the solution (workflow) into at least 1 site collection. These steps are the same for SharePoint 2010, SharePoint 2013, and Office365 (Sharepoint Online)
The steps in the process include:
1. Creating the Master and Child Content Types and Configuring the Document Set Content Type
2. Creating the Reusable Workflow in Designer
3. Associating the Workflow to the Content Types
4. Creating the Libraries and applying the Content Types
5. Configuring the Home Page
STEP ONE - Create a Content Types, Site Columns and Configure
This can be done in the Content Type Hub or the Site where the Document Set will be used. If you plan on reusing this content type or site columns for managing content in other sites, you may want to use the Content Type Hub.
You will create two content types. One for the document set, the other for the report.
1. In the Content Type Hub> Site Settings>Site Content Types. Click Create. If you plan to create children content types from the first one, name it with "master" so you can identify it easily.
NOTE: Never use any spaces, number, or special characters when creating content type names or site columns. It makes the internal name and the managed properties created for the content type and columns difficult to use. You can always rename it after you set it up.
In this example we will call this DocSetMaster.
You can provide a description of the Content Type. In the Parent Content Type, select Document Set Content Types> Document Set
In the Group, create a new group or use an existing one based on your governance/standards.
Create the ReportMaster Content Type
Parent Content Type, select Document Content Type>Document.
2. Add Existing Site Columns to the ReportMaster Content Type
• Report Description
• Report Date
3. Create new site columns for the following Content Types and add them.
When you are done, the Content Types should look like this.
4. Create Child Content types from the master.
To improve search refinement and to apply other filters at a later date, you should create child content types for each unique application and also add unique columns for each of the child Report content types.
For example, I would set up a HRDocSet and a HRReport. I would also set up a FinanceDocSet and a FinanceReport.
Create a new content type. Give the new child content type a unique name that has no spaces or special characters or numbers.
Publish the Content Type.
5. Update the DocSet Content Type Settings
After creating the children content types from the ReportMaster and DocSetMaster, access the child DocSet and click Document Set Settings (1).
In the allowed Content Types, click the dropdown and select the Group used to manage your content types (2).
Highlight the applicable Content Type (3) and click the Add button (4) to move it to the allowed in Document Set Box.
In the Default Content click the Delete link next to the Document content type (5)
After deleting the Default Document, you can remove the Document Content type from the allowed content types box (6).
Highlight the 3 DocSetUser roles to the Welcome page columns (7) and click the Add button to include on the Welcome Page.
Click OK to finish saving the Document Set Settings.
NOTE: After adding the Document Set content type to the library, you can set the default view. This setting only appears when the Document Set content type has been added to a library.
STEP TWO - Create the Reusable Workflow
1. Open the Site in SharePoint Designer 2013. Select Workflows from the left navigation and click Reusable Workflow in the ribbon. Change the Platform Type to SharePoint 2010 Workflow to activate the Content Type dropdown. Pick the Document Set Content Type.
2. The workflow will use the Impersonation Step. This means the workflow runs under the author (publisher) of the workflow. After testing, you will republish the workflow with the System Admin account so the version history, does not include actual users when the workflow runs.
3. In the text based designer pane, click above the Step 1 box to activate the Impersonation Step in the ribbon (1)
Click Impersonation Step to add it to the pane.
4. Associate the custom columns to the workflow. Click the Association Columns (3) then Select Site Columns (4). In the Site Column Picker, select the columns created for the Owners, Editors, and Viewers (5). You must add these one at a time.
5. In the Impersonation Step box, click Action and select Replace List Item Permissions from the List Actions section and then add 2 additional Actions named Add List Item Permissions. After configured, the section will look like this.
6. Configure the Permissions for each Action. Each time a button is clicked a new pop-up window opens.
On the first action, click these permissions hyperlink (6).
The Replace (or Add) List Item Permissions pop-up opens, click Add…(7) to open the Add Permissions pop-up.
~~Choose the appropriate permission levels (8) and Click the Choose… button (9) to open Select Users pop-up.
On the Select Users pop-up highlight the Workflow Lookup of a user… (10) and click the Add>> button (11) to open the Look up Person or Group pop-up.
The data source defaults to Current item. Choose the DocSetOwners in the Field from Source (12). Select Login Names, semicolon delimited from the return field as (13). Click OK, OK, OK to return to the Impersonation Step.
Click the this list link (10) to open the Choose List Item pop-up, click OK to accept the Current Item default (11).
Repeat these steps for the Add List Item Permissions Action.
• The DocSetEditors permissions are Contribute
• The DocSetViewers permissions are Read
7. Delete the Step 1 Box or you can add an action to Stop the Workflow and Log the message: Permissions Updated. Save and Publish the reusable workflow.
STEP THREE - Associate the workflow to the Content Type
This process can become confusing with the number of steps that you have to do to get this to work when you are using the workflow in multiple Site Collections. Make sure that you thoroughly test your workflow before trying to add to multiple site collections.
1. Access the Content Type from the Content Type Hub or Site. Click Workflow Settings (1) from the Content Type Settings.
2. Click the Add Workflow option (2).
3. On the Add a Workflow Page, select the workflow (3) from the choices and enter a unique name. Example Update DocSet Permissions.
In the Start Options, all 3 options should be selected, most importantly:
• Creating and new item will start this workflow
• Changing an item will start this workflow. (4)
4. Republish the Content Type
5. After republishing the content type, you must also add the workflow to each site collection and activate it.
Save Workflow as Template. Click the workflows (1) in the left navigation panel, highlight the workflow (2) and click Save as Template (3). This saves the workflow in the Site Assets Library.
6. Click the Site Assets(4) in the left panel and then highlight the saved wsp file (5) Click Export File (6) icon to save the file to your desktop.
7. Add the solution to the site collections.
Go to the site collection> Site Settings >Web Designer Galleries> Solutions. Click Upload Solution, browse to the saved wsp file and upload. You must click the Activate button.
8. After activation, you must activate it in the Site Features. Go to Site Settings> Site Actions > Manage Site Features
Scroll down to the bottom of the features, and then activate the feature.
9. After Activation, you will associate the workflow to the Content Type in the library where it will be used. Access the Library tab and click Add a Workflow in the ribbon.
10. On the workflow settings screen set the following options:
• Select the content type the workflow is associate with
• Select the workflow from the list (note if you do not see it here, you may not have activated the feature or you did not associate it to the workflow in designer)
• Give the Workflow a meaningful name the user will understand if manually selected
• Update the Start options to run when a new item is created and edited.
NOTE: When using the Content Type Hub -- If you change your workflow, you will need to go through the solution activation process again on each site collection that will use the workflow.
STEP FOUR – Add the Content Type to a Document Library
1. Create an App. Select Document Library
2. Configure Library. Click the library tab and click Library Settings>Advanced. Change the following options:
• Content Types = Yes
• Make New Folder = No
Edit the Version Setting. Set versions to Create Major Versions, set the limit of versions based on your governance policy. If you do not have a governance plan and your users do not have a compelling reason to keep all versions, I like to set the number of versions to no more than 5.
3. On the Library settings page, scroll down to the Content Types section and click the link "Add from existing site content types, select the content type created for the library. If you just published the content type from the hub, it may take a while to show up in the choices. The content type publishing runs on a timer job.
4. Associate the Workflow to the content type.
5. Remove the default Document content type from the document library. Click the link to the Document content type in Library Settings and click Delete this content type.
6. Create a DocSet and add a test file.
7. Create view called DocSetView based on the All Documents. Display the fields most valuable to the end users such as Report Description, Report Status, Report Date.
8. In the library settings, click the Document Set link to edit the settings. At the bottom of the page is a new dropdown
9. Edit the Page and change the Document Library web part to "Show Tool Bar" See Blog Show Tool Bar in SharePoint 2013
10. Update the Permissions of the library. Break inheritance and remove the default Visitor group from the Groups.
Depending on your site's specific requirements, you may want a different library for each Department. If this is the case, you should create Member groups for each library and tailor the permissions so that only members can see and contribute to the library.
STEP FIVE – Configure the Home Page and Set Permissions
Since this site will be used potentially by everyone in the company, you will want to make sure all employees can at least access the Home Page. Add the Everyone group to the Default Site's Visitors Group. In the previous step, the Visitor Group is removed from the document library.
Next add a Content Query Web part to the Home page. You must have Publishing feature turned on in the site's settings for this webpart to be available.
Edit the Content Query Web Part and update the following settings.
In the Query section, use the first option Show items from all sites in this site collection (1)
Under list type select Document Library (2)
Content Type select the Group you used for your content type and then pick the Content Type Master you created (3). Include Child content types (4).
In the Additional Filters section, select the ReportDate and select is greater tnat or equal to a date that is before the first report date in the library (5).
Presentation section, group items by Report Status in ascending order (6).
Sort items by Report Date in descending order (7).
If you want a shaded header to highlight the Report Status, select the Banded style (8).
Item style is Title, description and document icon (9).
Fields to Display – Link should be filled in by default
In the description field enter ReportNiceDate; (10).
Under the Appearance section, add Recent Reports in the Title field (11).
Save the Page.
In summary, the contributors of the site will be able to create new Document Sets and apply the permissions themselves to each document set.
As people come and go from the organization, the owners of each Document Set can simply edit the properties and make the necessary changes to the viewers and editors. The workflow will run and set the permissions each time the Document Set is updated. All documents added inherit the permissions from the Document Set.
Moreover, users who have access to reports do not have to click around to find recent reports. The Report Center home page displays available reports to users and everthing is security trimmed based on the permissions granted by the Document Set.