I've heard many people ask for a place to view all the sites they have access to. Using the content search web part you can accomplish this and have a page that by using search, which returns unique results for each user based on their permissions, each user gets a unique list of the sites they can access that looks something like this:
Open up SharePoint Designer and select on All Files in the left hand navigation. Then go to /_catalogs/masterpage/Display Templates/Content Web Parts. Copy Control_Sites_Directory.html and Item_Sites_Directory.html here. Edit the url in these files (where it says "vivity.sharepoint.com") to your url.
Go to Site Assets, and create a Styles folder (if not there already), and copy SitesDirectory.css there.
Select the templates
First, add a content search web part to your page and edit it. In the dropdowns, select the newly added Sites Directory for the Control and Item Sites Directory for the item.
Setup the web part query
edit it, hit the Change Query button, Switch to Advanced Mode and paste in the following "contentclass:STS_Site" into the Query text box
You might want to remove some sites/paths from the query as needed by using the Property filter (e.g. -Path:https://vivity.sharepoint.com/sites/sitenottoshow). If you want to add subsites as well, make the query text (contentclass:STS_Site OR contentclass:STS_Web).
And that should be it!
NOTE: If some sites aren't showing, just kickoff a re-index of the site in Site Settings -> Search and offline availability...
This post details how to setup a script to process emails, and setup your workflows to send emails that can be processed by the script, so that end users can ultimately just reply to an email and it will get processed and close the task.
We'll setup a script as a scheduled task, that will check a designated inbox for emails to process. It will scan the body of those emails for keywords to approve or reject.
We'll then take a workflow task process, and update the email to have an approve and a reject mailto link, which will open up an email, which when a user sends, will get processed and will update and close the task.
Step 1: Setup Email Inbox
The first step is to create an email inbox that we'll use for all processing. In this inbox, create three folders:
Email Approvals Processed
Email Approvals Not Processed
Create an inbox rule that will move the item to the Email Approvals folder if the subject begins with "REPLY:"
This Email Approvals folder will be the folder our script will check to process any emails that arrive there.
The script assumes there are two users, one that has the required permissions to update the task in SharePoint ($UserSharePoint), and one user for the mailbox where the emails are being sent to ($UserEmail). Create encrypted files for each by following the instructions here, and make sure to match the name and path of the file to the $CredsFileSharePoint and $CredsFileEmail in the script.
Step 4: Create a Scheduled Task
Setup a scheduled task to run the script, and under Actions set the following:
In each email from the workflow, we have a mailto link for
approving and rejecting, which should resemble the following.
email@example.com?subject=REPLY:%20PO%20Change%20Request&body=I%20approve%20the%20following%20PO%20Change%20Request.%0D%0A%0D%0ATitle:%20Requesting%20a%20new%20phone%0D%0APO%20Number:%2098451%0D%0APO%20Owner:Jane%20Doe%0D%0AOriginal%20Amount:%20$699.00%0D%0ANew%20Amount:%20$799.00%0D%0ADescription:%20%E2%80%8BUpgraded the model%0D%0A%0D%0A______________________________%0D%0A%0D%0AFor%20Processing%0D%0A%0D%0Aurl=https://vivity.sharepoint.com/Finance/Lists/POChangeTasks/DispForm.aspx?ID=117
Mailto Response Email
Note that the script keys off of certain words, so if
“approve”, “acknowledge” or “yes” is in the body, it will be approved, if
“reject” is in the body text, it will be rejected.
Subject: REPLY: PO
Body:I approve the following PO Change Request.
Title: Requesting a new phone PO Number: 98451 PO Owner: Jane Doe Original Amount: $699.00 New Amount: $799.00 Description: Upgraded the model
*** NOTE: This must be done when logged into the computer running the program, as the user you’ll be running the program as. E.g. if your Scheduled Task is running as sys_admin, you must be logged in as sys_admin on the machine that will be running the scheduled task before encrypting the credentials ***
Create the Encrypted File
First create the encrypted text file by running the following: