TFS 2017 Team Notification Available Roles - tfs-workitem

I am trying to setup team notifications for work item changes using Role based alert delivery in on-premises TFS 2017. In the Deliver to Specific team members dropdown I can select Assigned To, Previous Assignee, Current Assignee, but in our template we have Owner field that I also want to have in the dropdown like Owner, Previous Owner, Current Owner.
Is there any process customization to apply to make these roles appended to the dropdown list?

Unfortunately, the Roles field can not be customized. I have submitted a user voice at website below, you can vote it:
https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/34325335-customize-tfs-team-notification-available-roles

Related

How do I add custom tables to App for Outlook?

I already tried asking this in the Microsoft Dynamics forum.
I have deployed the App for Outlook. I have added three custom tables (entities). These now show up in Quick Create and the Regarding lookup.
I have also removed the Contact, Lead, and Account tables. But when I click the Add button, the three options are "Add as Contact" and so on.
When I click on an email that is already saved in Dynamics 365 Sales Enterprise, the Recipient Picker says "Unknown Recipient" (see image below). How can I get the Recipient picker to include the custom tables that I've added?
I've tried refreshing the app, redeploying, and running the App for Outlook checker.
App for Outlook is using Exchange server-side synchronization.
Thanks,
Shane.
As far as I know and I read, you cannot set custom entity for Recepient. It can only be Account, contact or lead. But you can set Regarding for custom entity and track email communication.

How do I choose a different support email address when registering a Google OAuth app? [duplicate]

I created new Google Play game and would like to change the email displayed on Google Consent Screen. Google Developers Console screen has a dropdown to choose email, but just one - admin's email - is here. I've added another user as the owner, but it is not appeared on the consent screen.
If you want to change the email address that is displayed to the user you have to:
Add permission for the new email address to handle the project: Menu > IAM & Admin > IAM, then click on the Add button, enter the email address and select Role > Project > Owner
Accept the invitation from the new email address. Check your emails, click on the confirmation url and accept the terms and conditions.
Log in to the Google Developers Console using the NEW email address. Only the new email address can change the displayed email address. You don't have to log out or open an incognito window. You can simply add a new account by clicking on your account photo (upper-right corner) and then selecting the Add account option.
Tip: When you visit the page, you will be logged in with your primary account by default. If you want to be logged in with the second account you just created, simply append &authuser=1 to the end of the url. If you have more than 2 accounts, you can use the value authuser=2 or 3 and so on. (The default value for your primary account is 0.)
You need a second email address then add that person / email as admin of the project. Then you will be able to add that email in the consent screen.
The Console has changed a lot since 2014, You need to add another user as the admin then you must login to console with that email and connect it. Then you will be able to change it.
A new user can be added via the Iam for your project.
While the above solutions work, I didn't want to make my support#my-company.com a Project > Owner of my GCP project since multiple people can potentially access it.
The page (https://console.cloud.google.com/apis/credentials/consent/edit) says that the permission needed is clientauthconfig.clients.update
So I made a Custom Role containing every permission in that category:
clientauthconfig.brands.create
clientauthconfig.brands.delete
clientauthconfig.brands.get
clientauthconfig.brands.list
clientauthconfig.brands.update
clientauthconfig.clients.create
clientauthconfig.clients.createSecret
clientauthconfig.clients.delete
clientauthconfig.clients.get
clientauthconfig.clients.getWithSecret
clientauthconfig.clients.list
clientauthconfig.clients.listWithSecrets
clientauthconfig.clients.undelete
clientauthconfig.clients.update
and gave my support email that Custom Role + the role Project > Viewer
One note, these permissions are not finalized yet. The 'Create a Custom Role' page gives this warning:
Not recommended for production use
These permissions might be changed
in backward-incompatible ways and are not recommended for production
use. They are not subject to any SLA or deprecation policy.
You can go here https://groups.google.com/ and create a group. Then simply refresh the consent page and you'll be able to pick the group. It is not your custom domain but it does the job I think.
There is a way to choose email without creating a new Gmail account and giving it Owner permissions. You can create a Group in GSuite with public email and then configure the group's forwarding to the email you want.
For example, you want to use support#company.com. You can create a group support.google#company.com which will forward everything to support#company.com
Then, you will be able to pick up support.google#company.com in the dropdown.

In Sharepoint 2013, how do I hide the content of a List?

I want to restrict users from seeing the content of a list when they navigate to "site/Lists//AllItems.aspx". All I want them to see is the message "There are no items to show in this view of the "" list." I've already checked permissions but everything is set properly. We are not using audience targeting.
Configure the list view to use a filter that returns no result. For example, if the smallest ID in the list is 9, set the filter to show ID equals 8
Such hacks will not prevent savvy users from viewing the data though. Access and permissions should be configured properly. Consider removing user access to that list entirely, so only administrators can see it.
First break permission on your list or library by "Stop Inheriting Permissions"
Go to the list, library, or survey and open it.
Go to the Permissions page using the steps in the previous section.
To break permissions inheritance from the parent, select Stop Inheriting Permissions.
Assign unique permissions in SharePoint 2019, 2016, or 2013 server
You must break inheritance from the parent site before you can grant unique permissions. Once you've broken inheritance using the steps in the section above, follow these steps to grant unique permissions:
Go to the list, library, or survey and open it.
Go to the Permissions page using the steps in the previous section.
Select Grant Permissions on the Permissions tab.
Delete Unique Permissions button
Note: If the list or library is inheriting from the parent, you won't see Grant Permissions.
In the Share... dialog box, make sure Invite people is selected, and then type the names of the people or group you want to grant access to in the Enter names or email addresses... box.
Share dialog box
Add a personal message if you like.
Check or uncheck Share everything in this folder, even items with unique permissions. This will grant or restrict access to items you already set unique permissions for. (This option is only available for folders.)
The permission level granted is set to Edit by default, which means the people you invite can make some changes to the list, library, or survey. If you want to grant a different permission level like Read only, click Show options and change the selection in the Select a permission level box.
An email message will be sent to everyone in the Invite people box. If you don't want this to happen, click Show options, and uncheck Send an email invitation.
When you're done, click Share.
Hope this can solve your issue:
https://support.microsoft.com/en-us/office/customize-permissions-for-a-sharepoint-list-or-library-02d770f3-59eb-4910-a608-5f84cc297782

How to give View Level Permission to user in sharepoint List

I have Created the SharePoint custom List with 3 views(Ex.test1,test2,test3).
I want to assign 3 views to 3 user,one should not have permission to view other's view.
Any help would be appreciated.
As far as I know, this is simply not possible, i.e. assigning views to a certain user. You can have 'Public' views (visible to everyone with access to the list as the name implies) and 'Personal' views (visible only to the user who created them, the user must have the relevant permission enabled for this). Personal views cannot be shared.
Also, if it is critical that data is only visible to certain users and not others, a user can look at items not in their View by simply changing the ID in the Item View in the URL so View filtering is not a good way to go about this.
Could you please elaborate on what exactly are you trying to achieve, i.e what is the difference between the views etc.?
UPDATED:
Here you can get another good solution.
https://sharepoint.stackexchange.com/questions/253723/restrict-list-view-to-role-sp-o365
It is really good solution because you need only admin rights and no code.
You need to create folders, break role inheritance and add permissions on folders.
My OLD answer:
From my experience It is depend on what is your expectations from solution, your limits, what you want to get and what things you can sacrifice and in some cases what SharePoint edition you are using.
Note: SharePoint does not have out-of-box fully customizable list item permissions.
I can say about some expectations, some details, some solutions and workarounds and how to implement this.
You can try to get something that applied to you:
.1. You want to disallow users to see other users views. But:
users with specific permissions can create their own views and therefore they can create views with all fields and all list items data from other disallowed views,
users can get data about all fields in list items and all list items from REST API, JSOM API and other SharePoint out-of-box web services,
users can open any list item, change URL item ID to another and see any data from other list item.
To achieve this you can:
.1.1. Open list under each user and create its own Personal View.
Personal Views displayed only for individual users.
.1.2. Create Public View and set its Target Audience.
Open view page -> in right corner click Gear icon -> Edit Page -> on the page click arrow icon on list view web part -> Edit Web Part -> Section "Advanced" -> Field "Target Audiences".
If you does not have this option then enable target audiences.
List Settings -> Audience targeting settings -> Enable audience targeting.
In audiences you can specify SharePoint users or groups who has permissions to see this web part.
Here you can see different uses of audiences and how to enable it on list or library: https://support.office.com/en-us/article/target-content-to-specific-audiences-33d84cb6-14ed-4e53-a426-74c38ea32293
.1.3. Create Public View, open its page, edit page, delete List View Web Part, add Content Query Web Part and set its Target Audience.
Here you can see info about Target Audiences:
https://support.office.com/en-us/article/target-content-to-specific-audiences-33d84cb6-14ed-4e53-a426-74c38ea32293
But I didn't perform this by myself.
.1.4. Add javacript to list view page.
This javascript will check user permissions and hide view or redirect user to some other location or will make other actions.
.2. Users cannot see other users created list items from any source (any list views, any API and web services).
.2.1.
Note: this is limited. User can only read, edit list items which created by him. You cannot apply this on other users created list items.
To achieve this you can:
List Settings -> Section "Advanced settings" -> Block "Item-level Permissions" -> "Read items that were created by the user" and "Create items and edit items that were created by the user" options.
.2.2. Create different lists for different users with different permissions.
.2.3.
Note: this is limited by SharePoint unique permissions limits.
You can create SharePoint workflow that run on list item creation. This workflow will break list item role inheritance and set new permissions for this items by some conditions.
This is may be good but here some limits exists. SharePoint limit list to have more than some limit number of list item unique permissions.
.2.4. I don't know if SharePoint has some limits to this but you can try and I don't know if you can perform this from public API but you can try to investigate.
You can create SharePoint workflow that run on list item creation. This workflow will set Target Audiences on list item.
Here you can see info about Target Audiences:
https://support.office.com/en-us/article/target-content-to-specific-audiences-33d84cb6-14ed-4e53-a426-74c38ea32293
.2.5. If you use SharePoint On-premise edition then you can add:
.2.5.1. List event receiver that run on list item Create event and perform following actions:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item
.2.5.2. Create Timer job, deploy, schedule it in SharePoint Central Administration.
This timer job will be check newly created list items periodically and:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item
.2.6. You can create Console Application (c# language) that connect to SharePoint, check newly created list items periodically and:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item.
This console app can be scheduled on any server in your company through Windows Task Scheduler.
.2.7. You can write Powershell script that connect to SharePoint, check newly created list items periodically and:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item.
This Powershell script can be scheduled on any server in your company through Windows Task Scheduler.
.2.8. You can create Windows Service (c# language) that connect to SharePoint, check newly created list items periodically and:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item.
This windows service can be installed on any server in your company.
.2.9. May be you can create some other periodically running code (like Workflow, Console App, PowerShell script, Windows Service) in any server.
This code will:
- break list item role inheritance and set new permissions for this items by some conditions
OR
- set Target Audiences on list item.
I think code wrapper not limited to any implementation.
I think this ways is applicable to many cases.
If you want more customizable control, or you have some limits in implementation, then you can create many workarounds by many ways. Workaround can close many permissions holes but may be not all holes:
.1. You don't want user can create views from list view page UI.
You can add javascript to hide ribbon, buttons or some other UI elements to disallow user to create its own view or to switch to another user view.
If user is smart he can avoid this by using REST API, JSOM or web services to get neccessary list item data.
.2. You don't want user can see any list item data changing URL list item ID to another.
.2.1. You can add some javascript on default form pages.
On New Item form page, on Display Item form page and on Edit Item form page.
This javascript will be check user permissions and hide data or redirect user back to list view page or somewhere.
.2.2. You can create HttpModule that intercept web requests and check user permissions and redirect him to another page if he don't have permissions.
HttpModule must be added to IIS and SharePoint web config.
.3. You can try to disallow REST API, JSOM using but I didn't do that.
I think you can add HttpModule to IIS that will intercept web requests and check user permissions and return bad request HTTP status codes and error messages.
But I didn't yet try this by myself.
Here you must know all API endpoints to close access to them.
May be here exists many other different workarounds but I don't remember about them now.
Try something from what I said. May be it help you.

Sitecore publish site in multi site tenancy

We have two Sitecore 6.5 sites defined within one Sitecore instance so our structure is
/sitecore/content/Site1/sitecore/content/Site2
If a user selects a site in the Sitecore backend, and then Publishes the site, will Sitecore then publish just the selected site or both the sites within the Sitecore instance?
Out of the box Sitecore will publish everything from both sites on a "site publish"- you can resolve this by:
Dead simple approach: just do an "item publish" on the desired site root and include subitems.
Configure a custom publish target as described by John West: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/05/All-About-Publishing-Targets-in-the-Sitecore-ASPNET-CMS.aspx
If you have 2 sets of users, i.e. one role for each site with the correct read/write permissions set, then you could restrict what gets published using security.
In config set Publishing.CheckSecurity to true
If you set Publishing.CheckSecurity to true, then members of the
Sitecore Client Publishing role must have both read and write access
in order to publish an item. If you additionally set the
Publishing.RequireTargetDeleteRightWhenCheckingSecurity setting in the
web.config file to true, then the user must have delete access in the
item in the target database to publish a deletion.
Of course, if a user belongs to both roles then that still means both sites will be published, you can just publish an item and sub-items
Use Default or Custom Access Rights to Control Whether Users Can Publish an Item
Publishing Security Basics