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.
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.
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.
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.
There is no standard check-in policy for TFVC to enforce a get-latest prior to check-in.
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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With