Skip to content

Commit 80d50bc

Browse files
authored
Add Django admin and Course Creator permission docs (#1511)
* docs: First pass course creator perms docs * docs: Add Django Admin concept doc --------- Co-authored-by: Claude
1 parent 1645d6a commit 80d50bc

4 files changed

Lines changed: 274 additions & 0 deletions

File tree

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
.. _Request Access to Create Courses:
2+
3+
Request Access to Create Courses in Studio
4+
##########################################
5+
6+
.. tags:: educator, how-to
7+
8+
On many Open edX sites, the ability to create courses is not granted to every
9+
user automatically. Instead, new authors request course creation access, and a
10+
site administrator reviews and grants that access. If you sign in to Studio and
11+
do not see an option to create a new course, you most likely need to request
12+
course creation access first.
13+
14+
This how-to describes how to request that access as an author. The steps that a
15+
site administrator takes to grant your request are described in
16+
:ref:`Grant Course Creation Access in Studio`.
17+
18+
.. note::
19+
These steps apply to sites that have the course creator group enabled (the
20+
``ENABLE_CREATOR_GROUP`` setting). If your site does not use this feature, any
21+
signed-in user can create courses and you do not need to request access. If
22+
you are not sure how your site is configured, contact your administrator.
23+
24+
Request Course Creation Access
25+
******************************
26+
27+
#. Sign in to Studio at the URL provided by your administrator.
28+
29+
#. Open the Studio home page (your **Courses** dashboard).
30+
31+
If you already have course creation access, you will see the option to create
32+
a new course, and no request is necessary.
33+
34+
If you do not yet have access, Studio displays a message explaining that you
35+
do not have permission to create courses, along with an option to request it.
36+
37+
#. Select the option to request course creation rights.
38+
39+
Simply visiting the Studio home page registers your account with the site. To
40+
submit a request for review, you must select the request option so that your
41+
status changes to **pending** and your site administrator is notified.
42+
43+
After You Request Access
44+
************************
45+
46+
After you submit your request, a site administrator with staff or superuser
47+
permissions reviews it and either grants or denies course creation access. When
48+
your administrator changes your status, the platform sends you an email
49+
notification.
50+
51+
* If your request is **granted**, return to the Studio home page. You will now
52+
see the option to create a new course. See :ref:`Create a New Course` to get
53+
started.
54+
55+
* If your request is **denied**, or if you do not receive a response, contact
56+
your site administrator directly. They can explain the decision or, for
57+
example, tell you which organizations you are allowed to create courses under.
58+
59+
.. note::
60+
A site administrator can grant course creation access for **all
61+
organizations** on the site, or for one or more **specific organizations**. If
62+
you are granted access to specific organizations only, you will be able to
63+
create courses under those organizations but not others.
64+
65+
.. seealso::
66+
67+
:ref:`Grant Course Creation Access in Studio` (how-to, for administrators)
68+
69+
:ref:`Create a New Course` (how-to)
70+
71+
:ref:`Re-Run a Course <Re Run a Course>` (how-to)
72+
73+
74+
**Maintenance chart**
75+
76+
+--------------+-------------------------------+----------------+--------------------------------+
77+
| Review Date | Working Group Reviewer | Release |Test situation |
78+
+--------------+-------------------------------+----------------+--------------------------------+
79+
| 2026-08-14 | Ty Hob | Verawood | Pass |
80+
+--------------+-------------------------------+----------------+--------------------------------+

‎source/educators/navigation/creating_course.rst‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Plan a New Course
4343
:glob:
4444

4545
../references/course_development/basic_course_details.rst
46+
../how-tos/request_course_creation_access.rst
4647
../how-tos/set_up_course/create_new_course.rst
4748
../how-tos/set_up_course/edit_course_details.rst
4849
../references/course_development/about_page.rst
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
.. _About the Django Admin:
2+
3+
The LMS and Studio Django Admin Interfaces
4+
##########################################
5+
6+
.. tags:: site operator, concept
7+
8+
Both major Open edX services — the LMS and Studio (CMS) — are built on the
9+
`Django web framework <https://www.djangoproject.com/>`_. Django provides a
10+
built-in, automatically generated administrative interface, commonly called the
11+
**Django admin**, that lets authorized users view and edit application data
12+
directly. Because the LMS and Studio are separate Django applications, each one
13+
exposes its own, independent Django admin:
14+
15+
* The **LMS Django admin**, served from your LMS domain at ``/admin/``.
16+
* The **Studio (CMS) Django admin**, served from your Studio domain at
17+
``/admin/``.
18+
19+
Each admin only exposes the applications installed in that service, so the set of
20+
available tools differs between the two. An app that appears in one admin is not
21+
necessarily present in the other. For example, the **Course Creators** app used
22+
to grant course creation access exists only in the Studio admin, not the LMS
23+
admin. When following a how-to that references the Django admin, be sure to use
24+
the correct service's admin.
25+
26+
What the Django Admin Is For
27+
****************************
28+
29+
The Django admin is intended for administrative tasks that require elevated
30+
privileges and are not exposed through the normal LMS or Studio user interfaces.
31+
Site operators and other trusted administrators use it to inspect and adjust
32+
platform data and configuration — for example, managing feature toggles and
33+
waffle flags, reviewing or editing user records, and changing settings that are
34+
deliberately kept out of the day-to-day authoring and learning experiences.
35+
36+
Access to the Django admin is restricted to users with **staff**
37+
(``is_staff``) or **superuser** permissions. Because these interfaces can read
38+
and modify sensitive data across the platform, admin accounts should be granted
39+
sparingly and treated as high-security credentials.
40+
41+
Security Considerations
42+
***********************
43+
44+
The Django admin is a powerful, high-privilege interface. To reduce risk, when
45+
possible you should protect the LMS and Studio admin interfaces from open access
46+
over the public internet — for example, by restricting them to trusted networks
47+
or a VPN, placing them behind additional authentication, or otherwise limiting
48+
who can reach them. Combined with granting admin privileges only to the users
49+
who genuinely need them, this helps limit the impact of compromised credentials.
50+
51+
For more detail on how the admin works and how it can be configured and secured,
52+
see the official Django documentation:
53+
54+
* `The Django admin site <https://docs.djangoproject.com/en/stable/ref/contrib/admin/>`_
55+
* `Django admin tutorial <https://docs.djangoproject.com/en/stable/intro/tutorial07/>`_
56+
57+
.. seealso::
58+
59+
:ref:`Grant Course Creation Access in Studio` (how-to)
60+
61+
62+
**Maintenance chart**
63+
64+
+--------------+-------------------------------+----------------+--------------------------------+
65+
| Review Date | Working Group Reviewer | Release |Test situation |
66+
+--------------+-------------------------------+----------------+--------------------------------+
67+
| 2026-08-14 | Ty Hob | Verawood | Pass |
68+
+--------------+-------------------------------+----------------+--------------------------------+
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
.. _Grant Course Creation Access in Studio:
2+
3+
Grant Course Creation Access in Studio
4+
######################################
5+
6+
.. tags:: site operator, how-to
7+
8+
.. contents::
9+
:local:
10+
:depth: 1
11+
12+
When the course creator group is enabled on your site, new authors cannot create
13+
courses in Studio until an administrator grants them access. This how-to
14+
describes how to review a request and grant (or deny) course creation access
15+
using the Studio Django admin.
16+
17+
The most common point of confusion is *where* this is done: course creation
18+
access is managed in the **Studio (CMS)** Django admin, not the LMS Django admin.
19+
The **Course Creators** admin app does not exist in the LMS, so looking for it
20+
there is a dead end.
21+
22+
The author-facing side of this process is described in
23+
:ref:`Request Access to Create Courses`.
24+
25+
Prerequisite
26+
************
27+
28+
Course creation access is only requested and granted when the course creator
29+
group is enabled with the ``ENABLE_CREATOR_GROUP`` setting (enabled by default
30+
in Studio). When this setting is disabled, any signed-in user can create
31+
courses, and there is nothing to grant.
32+
33+
You must sign in with an account that has **staff** (``is_staff``) or
34+
**superuser** permissions to change records in the Course Creators admin app.
35+
36+
.. note::
37+
Users who are marked as global staff (``is_staff``) always have course
38+
creation access and are not added to the Course Creators table. You only need
39+
to grant access to non-staff authors.
40+
41+
Open the Course Creators Admin App
42+
**********************************
43+
44+
#. Confirm that the author has requested access. When an author requests course
45+
creation rights from the Studio home page, their status changes to
46+
**pending** and, if email is configured, an email notification is sent to the
47+
address in the ``STUDIO_REQUEST_EMAIL`` setting.
48+
49+
#. Sign in to Studio with your staff or superuser account.
50+
51+
#. Go to the Studio Django admin **Course Creators** app. This is served by
52+
Studio (CMS), so use your Studio domain:
53+
54+
.. code-block:: text
55+
56+
https://<your-studio-domain>/admin/course_creators/coursecreator/
57+
58+
.. important::
59+
This app lives in the **Studio** Django admin. It is not available in the
60+
LMS Django admin. If you browse the LMS admin (for example,
61+
``https://<your-lms-domain>/admin/``) you will not find a Course Creators
62+
app.
63+
64+
#. The list page shows each author's username, email, current state, and whether
65+
they have access to all organizations. Select the user whose request you want
66+
to review.
67+
68+
Grant or Deny Access
69+
********************
70+
71+
On the author's record, you control access with the **State** field and the
72+
organization fields.
73+
74+
#. Set the **State** field:
75+
76+
* **granted** - the author can create courses.
77+
* **denied** - the author is not allowed to create courses.
78+
* **pending** - the request is awaiting review (this is the state set when
79+
the author requests access).
80+
* **unrequested** - the author has not requested access.
81+
82+
#. When you set the state to **granted**, choose the scope of access:
83+
84+
* To allow the author to create courses under **any** organization, leave
85+
**All organizations** selected and do not select any specific
86+
organizations.
87+
88+
* To limit the author to **specific** organizations, clear the **All
89+
organizations** checkbox and select one or more organizations from the
90+
list.
91+
92+
.. note::
93+
You must choose exactly one of these options. Selecting **All
94+
organizations** *and* specific organizations at the same time, or clearing
95+
**All organizations** without selecting any specific organization, produces
96+
a validation error when you save.
97+
98+
#. (Optional) Use the **Note** field to record context about the decision, such
99+
as why access was denied.
100+
101+
#. Select **Save**.
102+
103+
When you save, the platform updates the author's roles accordingly and, if email
104+
is configured, notifies the author that their course creation access has changed.
105+
106+
Verify the Change
107+
*****************
108+
109+
Ask the author to return to the Studio home page and reload it. If access was
110+
granted, they will now see the option to create a new course. If you granted
111+
access to specific organizations only, they will be able to create courses under
112+
those organizations but not others.
113+
114+
.. seealso::
115+
116+
:ref:`Request Access to Create Courses` (how-to, for authors)
117+
118+
119+
**Maintenance chart**
120+
121+
+--------------+-------------------------------+----------------+--------------------------------+
122+
| Review Date | Working Group Reviewer | Release |Test situation |
123+
+--------------+-------------------------------+----------------+--------------------------------+
124+
| 2026-08-14 | Ty Hob | Verawood | Pass |
125+
+--------------+-------------------------------+----------------+--------------------------------+

0 commit comments

Comments
 (0)