<p>If you can't find a plugin to do what you want, there is a more manual solution.</p>

<p>Create multiple upstream jobs that control the parameters and pass them to the downstream deploy job. Then you can restrict each group to only see the relevant upstream job. </p>

<p>It will result in semi-duplicate upstream jobs, but will guarantee appropriate separation.</p>

CC BY-SA 3.0
2018-02-23T15:50:19.337Z
U mean have a job (with access control / displayed to specific users) call the main job (displayed to noone) ...doesn't sound bad...I assume Jenkins allows a job to call another job with parameters (?)
pkaramol
CC BY-SA 3.0
2018-02-23T15:52:23.777Z
@pkaramol Exactly. It's extra easy with pipeline jobs - calling one from another is as simple as running a `build job:` step in your upstream job.
Alex
CC BY-SA 3.0
2018-02-23T15:33:39.750Z
2018-02-23T15:33:39.750Z
Alex
<p>Have a look at the <a href="https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin" rel="nofollow noreferrer">Role Strategy Plugin</a>. It allows you to assign roles per project or node, so you can configure detailed permission as required. </p>

<p>There are other CI tools with extended permission-management as well, but I see no need for them: Jenkins is an open source, stable CI system which works well on all important platforms and became a de facto standard. It has many plugins to archive nearly anything. Even rare use-cases can be handled by writing custom plugins/batch scripts. </p>

CC BY-SA 3.0
2018-02-23T13:33:23.080Z
2018-02-23T15:26:54.173Z
2018-02-23T15:26:54.173Z
Daniel
<p>I am creating a Jenkins job.</p>

<p>This will build some artifacts and will deploy to one of our environments, i.e. <code>qa</code>, <code>staging</code>, <code>production</code> etc. (I am using a choice parameter for this purpose)</p>

<p>However we need to restrict access to environments to specific user, i.e. the <code>QA</code> team should only be able to deploy to the <code>qa</code> env and so on; hence, the choice parameter should display to each user, <strong>only</strong> the environments he/she can deploy to.</p>

<p>Is this feasible in Jenkins?</p>

<p>Is there any <strong>other tool</strong> that could someone use to create jobs that present a custom UI (hiding/revealing options/choices) to users based on permissions?</p>

<jenkins><continuous-integration>
Personalize Jenkins job view per user
pkaramol
# Personalize Jenkins job view per user

(Asked by: username_0 on 2018-02-23)

I am creating a Jenkins job.

This will build some artifacts and will deploy to one of our environments, i.e. `qa`, `staging`, `production` etc. (I am using a choice parameter for this purpose)

However we need to restrict access to environments to specific user, i.e. the `QA` team should only be able to deploy to the `qa` env and so on; hence, the choice parameter should display to each user, **only** the environments he/she can deploy to.

Is this feasible in Jenkins?

Is there any **other tool** that could someone use to create jobs that present a custom UI (hiding/revealing options/choices) to users based on permissions?

**Tags:** jenkins, continuous-integration


---

## 2 answers

### Answer by username_1 on 2018-02-23. Score: 1

If you can't find a plugin to do what you want, there is a more manual solution.

Create multiple upstream jobs that control the parameters and pass them to the downstream deploy job. Then you can restrict each group to only see the relevant upstream job.

It will result in semi-duplicate upstream jobs, but will guarantee appropriate separation.

> **Comments:**
> **username_0**: U mean have a job (with access control / displayed to specific users) call the main job (displayed to noone) ...doesn't sound bad...I assume Jenkins allows a job to call another job with parameters (?)  
> **username_1**: @username_0 Exactly. It's extra easy with pipeline jobs - calling one from another is as simple as running a `build job:` step in your upstream job.  

---

### Answer by username_2 on 2018-02-23. Score: 1

Have a look at the [Role Strategy Plugin](https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin). It allows you to assign roles per project or node, so you can configure detailed permission as required.

There are other CI tools with extended permission-management as well, but I see no need for them: Jenkins is an open source, stable CI system which works well on all important platforms and became a de facto standard. It has many plugins to archive nearly anything. Even rare use-cases can be handled by writing custom plugins/batch scripts.


---

