Staff/Admin Member by organization

Hello,

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

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?

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!

1 Like

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?

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.

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.

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

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

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

1 Like

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 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.

4 Likes

@dave It worked!

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

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

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

Nice one, Dave!

Awesome! How can we get this into the documentation?

@andres 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 and it will show up on the new documentation site which we’re spinning up now.

Sounds good… do you know any WYSIWYG RST editor?

Man I wish we had org-level staff control for 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.

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.

1 Like