Restrict certain JIRA developers to a single project in JIRA 4.4 - jira

We have some trainees and we would like to give them some introductory tasks in JIRA.
We are using JIRA version 4.4.
What is the least intrusive way (avoiding creating global groups or permissions, if possible) in JIRA to achieve the following:
restrict the trainee user account so he can browse only a certain single project and no other projects are visible to him in menu, dashboards etc.
give this user the same permissions as default jira-developer has, but only for his associated project
?
Those trainees might leave after a month or two, so we would like to be able to delete their accounts later as easy as possible (without any linking issues, like "You cannot delete this because it is associated with that"...).
I tried to add one of the trainee accounts to a project using People tab. I added this user to Developers and Users sections, but still this user has a message:
"You do not have a permission to log in."
when trying to log-in.
If I add this user to jira-users group, he can log-in, but he is able to see all the projects.

The problem I found with JIRA permissions is that core administration elements are strewn all over the place. Its frustrating to find options which other guides allude to.
So, here is a guide detailing where to find each section required for security permission setup:
1) Create a new group (restricted to project xyz group).
Click User management in top right (click the cog icon) > login as Administrator > click Groups (left menu)
Add group, self explanatory > Name = restricted to xyz group (or whatever you like)
2) Create a new permission scheme (Restricted to Project XYZ permission scheme)
From Administration area > Click Issues > Permission Schemes
Copy the default scheme as the guide says, > Click "copy" next to "Default Permission Scheme".
Now this part takes some time. I deleted every single permission, then clicked "add" next to the below items.
add > Click "Group" Radio Button > select your group "restricted to project xyz group" etc
Hint: I middle mouse clicked each item open all at once, first to delete, then to add. Makes it less tedious.
Here are the items I Assigned to my group:
Project Permissions > Browse Project
Everything under "Issue permissions" section
Comments Permissions > Add Comments
Comments Permissions > Delete Own Comments
Comments Permissions > Edit Own Comments
if using time tracking:
--> Time Tracking permissions > Delete Own Worklogs
--> Time Tracking permissions > Edit Own Worklogs
--> Time Tracking permissions > Work On Issues
I'm not sure if these are "correct" but it works for me.
3) Link the permission scheme with project XYZ
Click Projects > Select your Project (project XYZ) > Click "Administration" at top of screen (Next to overview) > Click Permissions (left menu) > Click Actions > Select Use a Different Scheme
Why, do I have to go into the project to do this? It should be available via the Administration area under project. This took me 5+ minutes to find just now even though I've done it before.
4) Grant the Global Permission "JIRA users" to the group "restricted to project xyz group" so they will be able to log in.
Go back to Administration area > Click Cog top right > Click System > Click Global Permissions (left menu)
Add Permission > Select Permission = JIRA Users, select Group = restricted to project xyz group (etc)
After this you should see your group appear next to "JIRA Users" just click View users, then invite/add the users as appropriate with your group selected.
That's all for now, I hope it includes everything, its all I could remember. Hopefully it saves someone else from the suffering i went through ;)

It depends which groups have the Developer and User project roles. By default these are jira-developers and jira-users. I would create a new project TRAINING and grant the Developers and Users roles to the trainee user ids explicitly. Now they can play in that project.
The harder parts are to restrict them from the other projects yet still allow them to log in. If the default groups are in use then do not add them to jira-users or jira-developers. You will have to define a jira-trainees group and add to the Global Permissions to allow them to log in.
Come to think of it, if you've ended up defining a jira-trainees group then you might as well use it in the project roles instead of their individual user ids. Once this is all set up you only have to add a user to jira-traininees, make sure they're not in jira-developers and jir-users and you're ready to go.

I wrote a tutorial on how to do this as it's so difficult to do especially for casual users.
Unfortunately you have to create a group and permissions scheme (and learn how to unhook the users group from the default permissions scheme, but I've laid it out really easily here so you'll not find an easier guide:
http://testigniter.blogspot.co.uk/2013/03/setting-up-jira-for-single-project-user.html

mdoar's answer has the guts, but here's a more step by step answer, specifically for the "You do not have a permission to log in." part.
Let's say you are logged in to Administration and there is a group 'My group for project X' and some users are assigned to this group.
1. Go to Users -> Global Permissions
2. Have a quick read about "JIRA Users"
3. In the "Add Permission" section choose "JIRA Users" as "Permission" and your group as "Group" and hit add.
4. All users from 'My group for project X' should now be able to log in.
For other access problems you may find "Premission Helper" useful (just look for it in the Administration Quick Search in the top right corner).

I did the following:
Created separate group for users allowed to see the project (Site Administration -> User management -> Groups
In Jira Admninstration -> Global Permissions added this group to "Jira users"
In the project's administration -> Roles added this group to "Users" project role
Created an user in this group and removed it from "jira-users" group. Without adding global permissions this would remove this user from accessing Jira at all
Worked like a charm (I hope), no annoying permissions scheme creation was needed

Related

How to setup permission to single project on Jira

We have multiple projects but want to have single user to be able to see and work in just one project in Jira Software Cloud
It will be good to have new dedicated permission scheme. You may start by copy the default one:
Permissions can be based on Project Role or Group and depend on what will be your preference to manage.
If they are set on "Project role" as given on picture below if you is set to be in "Developer" role of certain project he will have browse permissions to it and each project that this permission scheme can be configured with users in certain roles and so these users will be the one granted with permissions
Target Project needs to be updated to use the new the new permission scheme .
It will be good to change default permission scheme to be more restrictive i.e. probably just user group admins to have access to projects that are using it.
Hope this helps!
The trick is to restrict access to all your projects apart from the one you want them to be able to see.
Then create a group that has permission to access the restricted projects.
Finally, add all your users to the group that has access apart from the single user that you want to restrict.
Create a new project role "Team member".
Copy the default permission scheme and replace "Application access - Any logged in user" with "Project role - Team Member".
Apply the new permission scheme to your project.
Add the user to the project under the role "Team Member".
Caveat: some permissions may be lost because of the "Any logged in user" permission removal which is sooo generic it hurts. So you need to check that existing users still have the access they expect. First step would be to add them to the project under the "Team Member" role.

Which permission allows a user to create Task Groups in TFS 2017 Build?

When I try to create a task group from a task in my build definition in TFS 2017, I get an error that says
Access denied. (user name) needs Edit task group permissions to
perform the action. For more information, contact the Team Foundation
Server administrator.
I've checked the following documentation pages, but none of them seem to mention how to grant edit task group permission:
Task Groups
Permissions and groups in VSTS and TFS
Build and release permissions
I'd like to know the correct way to grant this permission.
Additional information:
My account is a member of a Builders group in the appropriate project, and that Builders group has Allow set for every permission listed at the above Build and release permissions link, except override check-in validation by build and Update build information which are both Not Set, and the documentation recommends leaving those permissions as they are.
There are three related permission Administer task group permissions, Delete task group, Edit task group for task groups configuration.
You could set it from Build&Release --Task Group--right click it in left pane--select security.
However just like some other permission settings, you could also directly add a user or TFS group here. After add a user, there should be a users list under TFS group list.
"Build Administrators", "Contributors","Project Administrators" or "Release Administrators" there are just four default groups here. You don't have to add your user account in these groups and set the permission for a specific group to grant related permission of "task group". For example, if you don't want to give all users in a group the correspondingly permission, you could simply give the permission for a user.
In your case, you could add your old "Builders" group here or just add your owner account either directly here or one of a default group.
The other answer is good, except that I have no Builders group... perhaps due to the upgrade path that had been followed on that server.
Go to Task Groups hub, e.g. http://{server}:8080/tfs/{collection}/{project}/_apps/hub/ms.vss-releaseManagement-web.hub-metatask, and hover on Task Groups in left pane, click Ellipsis and choose Security. By default, the old Builders group is not in there, but Build Administrators is. The permission Edit task group can be set here, if needed, but it looks like the correct thing to do is add the user to one of the groups Build Administrators, Project Administrators or Release Administrators.

In TFS Online, How do I share a code branch with our customer

We have an enterprise customer that we have delivered a system for. It is part of the agreement for us to supply them with the source code of the latest release. We are using TFVC on TFS online, and we thought it would be easiest to give them access to our Main branch. But I have difficulties with only allowing them to access the code and nothing else. The user I am testing with, can see too much: I.e. things like dashboard, current team members etc.
Is it possible for me to only expose code from the Main branch and nothing else to an external user?
Giving access to TFS Main Branch out of Organization (AD) is not advisable considering security.. Instead consider giving source code into zip format there are lot of large file sending (FTP sites) are available..
Still for your request of restricting access to user have a look over this
https://www.visualstudio.com/en-us/docs/setup-admin/restrict-access-tfs
you can consider replicating your part of source code into separate stream and give reader read only access to that stream.
Hope this helps... :)
Refer to these steps to set the permission:
Add user to your VSTS (Basic)
Remove this user from all group if you added
Go to admin page of a team project Version Control (Setting > Version Control)
Select a folder/branch
Click Add > Add User to add that user
Select the user that you added
Set Read permission to Allow
Go to Security page (click Security)
Click Create group to create a new group
Set View project-level information to Allow and deny other permissions for this group
Click Members of that new group
Click Add to add that user to this group
After that, this user can access the code (Just the folder/branch the user has the read permission) on web access (Code > Files).

Gerrit authentication: how to disable anonymous user

How can i stop anonymous user to view my project activities in gerrit. I have googled enough but could'nt find what are exact files which are called Access Control List for project.
If you want to disallow anonymous users to browse/read/search all the changes of a certain project, you just have to remove the Read permission for anonymous users from the project.
In order to be allowed to modify permissions, you have to be either Administrator or owner of that project.
To disallow anonymous browsing, follow these steps:
Go to Projects > List in the menu
Click on the project's name (or All-Projects, if you want to modify the default for all projects (requires being Administrator))
Choose Access in the submenu and hit the Edit button there.
From *Reference: refs/** remove in the Read section the ALLOW Anonymous Users using the X on the right side.
Hit Save changes

TFS - Specialized Group has no access to Work Items

I created a tfs group that would work on a specific project located in a collection. Now we're using work items to track bugs etc, but that group doesn't have access to those work items via the Team Web Access portal. I don't want this group to have access to all the projects in the collection, just the one they are working on. But i need them to be able to access work items that come up.
Currently when they access the Team Web Access portal, they get message indicating there are no accessible team projects in this team project collection.
if they can access their code in the collection already, how come they can't see the work items, and how can i change that, but still limit what they see?
Ok, found what i was looking for after some time. for the benefit of the community here is where that hidden security setting is done.
For the new group, i needed to go under Team/Team Project Settings/Area and Iterations!!!!
Yes, this silly place to but a SECURITY button. If you go in there, click the security button on the bottom of the dialog, you will then see ALL the WORK ITEM related permissions.
EDIT work items in this node;
Manage Test plans;
View this node;
View work items in this node.
I needed to check all of these to ALLOW.
Again, seems like a stupid place to put these settings, than with all the other security settings via TEAM Project Settings. I hope they had a good reason for that.
They will need the View collection-level details permission added to their group (at the collection level). By default, the Project Collection Valid Users group has these permissions, so you can just add your group as a member of the valid users group.

Resources