# Staff/Admin Member by organization

**URL:** <https://discuss.openedx.org/t/staff-admin-member-by-organization/7345>\
**Category:** Authoring\
**Tags:** how-to\
**Created:** [May 26, 2022, 7:49pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345 "2022-05-26T19:49:18Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![erickhgm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/erickhgm/32/3538_2.png) [@erickhgm](https://discuss.openedx.org/u/erickhgm)\
**Post date:** [May 26, 2022, 7:49pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/1 "2022-05-26T19:49:18Z")

</div>

Hello,

I know that I’m able to add Staff Member to a course using the Course **Setting / Course Team**.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/6/6ffb8089ff6df2b8471bc35d4c3e80a30dccf1a7.png)

Is there a way to add a **Staff Member** to all courses in an organization?  
Another question, is the **Admin Role** permissions applied over a unique course or all in the Studio?

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [May 27, 2022, 12:22pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/2 "2022-05-27T12:22:08Z")

</div>

Hi @erickhgm,

Staff and admin roles configured in Studio are per-course roles. It’s not possible to set to an organization. We should not confuse these course roles with the global admin role configured to the user in Django.

Hope it helps!

---

<div class="post-metadata">

**Author:** ![erickhgm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/erickhgm/32/3538_2.png) [@erickhgm](https://discuss.openedx.org/u/erickhgm)\
**Post date:** [May 27, 2022, 1:00pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/3 "2022-05-27T13:00:23Z")

</div>

Yeah, helps a lot!

With your answer, I have another doubt.  
Using Django is it possible to add a **Staff Member** to all courses in an organization?

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [May 27, 2022, 1:25pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/4 "2022-05-27T13:25:21Z")

</div>

If you set a user as Superuser in Django, then it will have full access to all courses in all organizations in the LMS and Studio. But I’m not sure if this is what you want.

---

<div class="post-metadata">

**Author:** ![erickhgm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/erickhgm/32/3538_2.png) [@erickhgm](https://discuss.openedx.org/u/erickhgm)\
**Post date:** [May 27, 2022, 2:19pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/5 "2022-05-27T14:19:28Z")

</div>

I want to add a **Staff Member** to an organization. All current courses in the organization this user will be able to edit and new courses in the organization will be able to edit.

I don’t want to have to add this user to a course every time a new course is created.  
In the other organizations, this user won’t be able to do anything.

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [May 27, 2022, 2:32pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/6 "2022-05-27T14:32:10Z")

</div>

Then go to the user section in Django admin and set “Superuser”

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/b/b270f022a211ec103da4dbfaa1dd0eaa5bc4323a.png)

---

<div class="post-metadata">

**Author:** ![erickhgm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/erickhgm/32/3538_2.png) [@erickhgm](https://discuss.openedx.org/u/erickhgm)\
**Post date:** [May 27, 2022, 2:35pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/7 "2022-05-27T14:35:58Z")

</div>

But with this, the user will be able to edit courses of all organizations, rigth?

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [May 27, 2022, 3:19pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/8 "2022-05-27T15:19:27Z")

</div>

Yes. There is no way to control access by organization that I’m aware of.

---

<div class="post-metadata">

**Author:** ![dave](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/dave/32/263_2.png) [@dave](https://discuss.openedx.org/u/dave)\
**Post date:** [May 31, 2022, 8:49pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/9 "2022-05-31T20:49:14Z")

</div>

Okay, I’m going to write about something that I don’t think is properly documented, and I’m doing it half from memory because I don’t have the time to really test it right now. _So please make a test user and try this out before telling your users about it._

There is an [OrgStaffRole](https://github.com/openedx/edx-platform/blob/db32ff2cdf678fa8edd12c9da76a76eef0478614/common/djangoapps/student/roles.py#L329) in the system, which I think has the behavior you want. You get one of these by going to the Django admin section for “Course access roles” and then creating a new role that has:

- the email of the person
- a blank Course ID
- the Org needed
- the role dropdown set to “staff”

We’ve had this in the system for a very long time, but there’s never been a decent UI around it, and I’m not sure how good the support across features is.

* * *

On a related note, there’s now also a org-level Waffle flag (as a complement to the course waffle flags we’ve had for ages), which lets you toggle waffle flag features by organization instead of just globally or by course. We’re incrementally getting things to make org-level management a little less painful.

---

<div class="post-metadata">

**Author:** ![erickhgm](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/erickhgm/32/3538_2.png) [@erickhgm](https://discuss.openedx.org/u/erickhgm)\
**Post date:** [June 1, 2022, 2:05am UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/10 "2022-06-01T02:05:11Z")

</div>

@dave It worked!

User **erick** as staff of Organization1 (I have courses in Organization2 as well)  
`https://${LMS_HOST}/admin/student/courseaccessrole/`

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/e/e65603238cbe7e51d36aaab07e9f5db252039038.png)

Studio with **erick** user  
`https://${LMS_HOST}/home/`

 ![image](https://us1.discourse-cdn.com/flex020/uploads/openedx/original/2X/e/efcff6e9c69a2f2c81acc39e5dc374dc5200fcce.png)

**Note** : Without this role, the user **erick** can’t see any courses in Studio. Exactly how it should be!

---

<div class="post-metadata">

**Author:** ![Dean](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/dean/32/4787_2.png) [@Dean](https://discuss.openedx.org/u/Dean)\
**Post date:** [June 1, 2022, 7:05am UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/11 "2022-06-01T07:05:10Z")

</div>

Nice one, Dave!

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [June 3, 2022, 12:15pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/12 "2022-06-03T12:15:38Z")

</div>

Awesome! How can we get this into the documentation?

---

<div class="post-metadata">

**Author:** ![feanil](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/feanil/32/37_2.png) [@feanil](https://discuss.openedx.org/u/feanil)\
**Post date:** [June 6, 2022, 5:28pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/13 "2022-06-06T17:28:27Z")

</div>

@Andres.Aulasneo this seems like it would be a great new how-to for us to add to the new documentation site. It sounds like the audience would be “Site Operators” and this would be a “How to make a user Staff in all courses for an Organization”

Does that sounds right?

If so, I think it could be added as a new doc under here: [docs.openedx.org/source/site\_ops at main · openedx/docs.openedx.org · GitHub](https://github.com/openedx/docs.openedx.org/tree/main/source/site_ops) and it will show up on the new documentation site which we’re spinning up now.

---

<div class="post-metadata">

**Author:** ![Andres.Aulasneo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/andres.aulasneo/32/984_2.png) [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Post date:** [June 7, 2022, 7:50am UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/14 "2022-06-07T07:50:46Z")

</div>

Sounds good… do you know any WYSIWYG RST editor?

---

<div class="post-metadata">

**Author:** ![colin.fredericks](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/colin.fredericks/32/35_2.png) [@colin.fredericks](https://discuss.openedx.org/u/colin.fredericks)\
**Post date:** [June 8, 2022, 3:25am UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/15 "2022-06-08T03:25:34Z")

</div>

Man I wish we had org-level staff control for [edx.org](http://edx.org) partners. We have over 800 course instances.

I ended up writing a Selenium-based Python script to open up course staff pages and add/remove folks. Here it is in case anyone wants to adapt it to your own purposes.

> **[GitHub - Colin-Fredericks/edx\_replace\_staff](https://github.com/Colin-Fredericks/edx_replace_staff)**
>
> Contribute to Colin-Fredericks/edx\_replace\_staff development by creating an account on GitHub.

We managed to remove about 40 people and add half a dozen to 817 courses in about 13 hours. Would have taken days to do it with the tools available to us.

---

<div class="post-metadata">

**Author:** ![teeeeee12](https://avatars.discourse-cdn.com/v4/letter/t/bc79bd/32.png) [@teeeeee12](https://discuss.openedx.org/u/teeeeee12)\
**Post date:** [August 6, 2025, 12:44pm UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/16 "2025-08-06T12:44:35Z")

</div>

Hi dave,

I am trying to restrict staff to see only courses that are assigned to their organisations, i did this You get one of these by going to the Django admin section for “Course access roles” and then creating a new role that has:

- the email of the person

- a blank Course ID

- the Org needed

- the role dropdown set to “staff”

but the user can still see all organizations.

This user has role of only staff not super staff.

Please is there anything i could be missing?

---

<div class="post-metadata">

**Author:** ![tenkal](https://avatars.discourse-cdn.com/v4/letter/t/ea5d25/32.png) [@tenkal](https://discuss.openedx.org/u/tenkal)\
**Post date:** [September 23, 2025, 3:53am UTC](https://discuss.openedx.org/t/staff-admin-member-by-organization/7345/17 "2025-09-23T03:53:51Z")

</div>

- Go to Django admin → Users → [Username]

- **Uncheck “Staff status”** (this is different from course-level staff roles)

- Save the user
