Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Restricting TFS check-in policy to specific users

The title says it all really. Our team wants to somehow restrict a TFS check-in policy to some select users.

We are currently using something similar, but to restrict server paths. We have a Custom Path Policy policy attached to a Work Items policy in our project, and it is working as expected. I wondered if it would be reasonable to create another policy like that, that scopes a certain other policy to a group of predefined users.

We would like to use a feature like that with this code review policy, to enforce that code reviews are requested before check-in for the new developers that enter the company, but not for everyone.

like image 812
julealgon Avatar asked Sep 19 '13 16:09

julealgon


People also ask

How do I manage users in TFS?

In the Team Foundation Server Group properties dialog box, click Windows User or Group, and then click Add. In the Select Users or Groups dialog box, type the user accounts you want to add, and then click Add. Note You can add individual user accounts but not a group account. Click Close.

How do you change checkin in TFS?

In the team explorer open up the source control tab, then right click on the route folder and select Check in Pending Changes. This will check in all the files over all the solutions/projects that you have underneath the root. Repeat the process for any other team collections you have used.

How do I give permission to user in TFS?

Manage Permissions for items: Select the item you want to edit in the “Users and Groups” section. You can then view and edit the permissions for this user or group in the “Permissions for [item]” section. Check “Allow” to grant authorization for user/group to do the operation.

Which of the following are checkin branch policy is not available for TFVC?

There is no standard check-in policy for TFVC to enforce a get-latest prior to check-in.


2 Answers

Here is my custom policy implementation. It allows to run child policy if user does not have certain permissions (is not member of certain group).

It can be used with custom path policy from TFS power pack and ColinsALMCornerCheckinPolicies Then it will be possible to ask for code review only for certain projects|files|folders and only if user has no permission to check-in without code review.

https://github.com/oleksabor/GroupMembershipPolicy

You have said that had migrated from TFS but I'd like to leave answer here because have not found solution for original question.

like image 110
oleksa Avatar answered Nov 03 '22 07:11

oleksa


There is no way to do this out-of-the-box, but you could indeed use the same process as the Custom Path Policy. You'd need to create and distribute a custom checkin policy to all your team members. Try using a tool like Reflector or dotPeek to inspect the Custom path Policy.

Then create your own Custom User Policy, it's a pretty simple class to implement, the core is the Evaluate method which would be almost a duplicate of the same method in the Custom path Policy. You can pop-up a simple custom windows forms dialog to show a List of users that this policy applies to (I'd personally create an option to use Blacklists as well as Whitelists).

By default you can find the custompathpolicy defined in this assembly:

C:\Program Files (x86)\Microsoft Team Foundation Server 2013 Power Tools\Check-in Policy Pack\Microsoft.TeamFoundation.PowerTools.CheckinPolicies.CustomPathPolicy.dll

like image 23
jessehouwing Avatar answered Nov 03 '22 07:11

jessehouwing