|
1 | | -# ===== ADMIN GLOBAL PERMISSIONS ===== |
2 | | -user:admin, act:manage, lib:math-basics, org:OpenedX, True |
3 | | -user:admin, act:delete, lib:science-101, org:MIT, True |
4 | | -user:admin, act:read, lib:openedx-library, org:OpenedX, True |
| 1 | +# ===== PLATFORM ADMINISTRATORS ===== |
| 2 | +# Platform admin (user:admin) - should have access to everything |
| 3 | +user:admin, act:manage, lib:math-basics, *, True |
| 4 | +user:admin, act:delete, lib:science-101, *, True |
5 | 5 | user:admin, act:read, lib:any-library, *, True |
6 | 6 | user:admin, act:write, lib:any-library, *, True |
7 | 7 | user:admin, act:delete, lib:any-library, *, True |
8 | 8 |
|
9 | | -# ===== ORG ADMIN PERMISSIONS ===== |
| 9 | +# ===== ORGANIZATION ADMINISTRATORS ===== |
| 10 | +# Alice - OpenedX org admin (should have access within OpenedX scope) |
10 | 11 | user:alice, act:manage, lib:openedx-library, org:OpenedX, True |
11 | 12 | user:alice, act:delete, lib:openedx-content, org:OpenedX, True |
12 | 13 | user:alice, act:write, lib:math-basics, org:OpenedX, True |
13 | 14 | user:alice, act:read, lib:openedx-test, org:OpenedX, True |
14 | 15 | user:alice, act:write, lib:openedx-test, org:OpenedX, True |
15 | 16 | user:alice, act:delete, lib:openedx-test, org:OpenedX, True |
| 17 | +user:alice, act:manage, lib:math-basics, org:OpenedX, True |
| 18 | +user:alice, act:manage, lib:science-101, org:OpenedX, True |
| 19 | +user:alice, act:edit, lib:science-101, org:OpenedX, True |
| 20 | + |
| 21 | +# Alice - Cross-org access (should be denied) |
16 | 22 | user:alice, act:manage, lib:mit-library, org:MIT, False |
17 | 23 | user:alice, act:read, lib:mit-content, org:MIT, False |
| 24 | +user:alice, act:manage, lib:openedx-lib, *, False |
| 25 | + |
| 26 | +# Alice - Restricted content access (should be denied) |
| 27 | +user:alice, act:manage, lib:another-restricted-content, org:OpenedX, False |
| 28 | +user:alice, act:edit, lib:another-restricted-content, org:OpenedX, False |
| 29 | +user:alice, act:read, lib:another-restricted-content, org:OpenedX, False |
| 30 | +user:alice, act:write, lib:another-restricted-content, org:OpenedX, False |
| 31 | +user:alice, act:delete, lib:another-restricted-content, org:OpenedX, False |
18 | 32 |
|
19 | | -# ===== ORG EDITOR PERMISSIONS ===== |
| 33 | +# ===== ORGANIZATION EDITORS ===== |
| 34 | +# Bob - MIT org editor (should have edit access within MIT scope) |
20 | 35 | user:bob, act:edit, lib:mit-course, org:MIT, True |
21 | 36 | user:bob, act:read, lib:mit-content, org:MIT, True |
22 | 37 | user:bob, act:write, lib:mit-data, org:MIT, True |
| 38 | +user:bob, act:read, lib:mit-test, org:MIT, True |
| 39 | +user:bob, act:write, lib:mit-test, org:MIT, True |
| 40 | + |
| 41 | +# Bob - Higher privilege access (should be denied) |
23 | 42 | user:bob, act:delete, lib:mit-course, org:MIT, False |
24 | 43 | user:bob, act:manage, lib:mit-course, org:MIT, False |
| 44 | +user:bob, act:delete, lib:mit-test, org:MIT, False |
| 45 | + |
| 46 | +# Bob - Restricted content access (should be denied) |
| 47 | +user:bob, act:edit, lib:restricted-content, org:MIT, False |
| 48 | +user:bob, act:read, lib:restricted-content, org:MIT, False |
| 49 | +user:bob, act:write, lib:restricted-content, org:MIT, False |
| 50 | + |
| 51 | +# Bob - Scope isolation tests (should be denied) |
| 52 | +user:bob, act:edit, lib:mit-course, lib:mit-course, False |
25 | 53 |
|
26 | | -# ===== LIBRARY AUTHOR PERMISSIONS ===== |
| 54 | +# Paul - OpenedX editor with wildcard access |
| 55 | +user:paul, act:edit, lib:openedx-lib, org:OpenedX, True |
| 56 | +user:paul, act:edit, lib:mit-lib, org:MIT, False |
| 57 | + |
| 58 | +# ===== LIBRARY AUTHORS ===== |
| 59 | +# Mary - math-basics library author |
27 | 60 | user:mary, act:edit, lib:math-basics, lib:math-basics, True |
28 | 61 | user:mary, act:read, lib:math-basics, lib:math-basics, True |
29 | 62 | user:mary, act:write, lib:math-basics, lib:math-basics, True |
| 63 | + |
| 64 | +# Mary - Higher privilege access (should be denied) |
30 | 65 | user:mary, act:delete, lib:math-basics, lib:math-basics, False |
31 | 66 | user:mary, act:manage, lib:math-basics, lib:math-basics, False |
| 67 | + |
| 68 | +# Mary - Cross-library access (should be denied) |
32 | 69 | user:mary, act:edit, lib:science-101, lib:science-101, False |
| 70 | +user:mary, act:read, lib:science-101, lib:science-101, False |
| 71 | + |
| 72 | +# Mary - Scope isolation (should be denied) |
| 73 | +user:mary, act:edit, lib:math-basics, org:OpenedX, False |
| 74 | + |
| 75 | +# John - science-101 library author |
33 | 76 | user:john, act:edit, lib:science-101, lib:science-101, True |
34 | 77 | user:john, act:read, lib:science-101, lib:science-101, True |
| 78 | + |
| 79 | +# John - Cross-library access (should be denied) |
35 | 80 | user:john, act:edit, lib:math-basics, lib:math-basics, False |
36 | 81 |
|
37 | | -# ===== LIBRARY REVIEWER PERMISSIONS ===== |
| 82 | +# ===== LIBRARY REVIEWERS ===== |
| 83 | +# Sarah - math-basics library reviewer (read-only access) |
38 | 84 | user:sarah, act:read, lib:math-basics, lib:math-basics, True |
| 85 | + |
| 86 | +# Sarah - Higher privilege access (should be denied) |
39 | 87 | user:sarah, act:write, lib:math-basics, lib:math-basics, False |
40 | 88 | user:sarah, act:edit, lib:math-basics, lib:math-basics, False |
41 | 89 | user:sarah, act:delete, lib:math-basics, lib:math-basics, False |
42 | 90 |
|
43 | | -# ===== ACTION INHERITANCE TESTS ===== |
44 | | -user:alice, act:read, lib:openedx-test, org:OpenedX, True |
45 | | -user:alice, act:write, lib:openedx-test, org:OpenedX, True |
46 | | -user:alice, act:delete, lib:openedx-test, org:OpenedX, True |
47 | | -user:bob, act:read, lib:mit-test, org:MIT, True |
48 | | -user:bob, act:write, lib:mit-test, org:MIT, True |
49 | | -user:bob, act:delete, lib:mit-test, org:MIT, False |
| 91 | +# ===== REPORT VIEWERS ===== |
| 92 | +# Maria - report viewer for OpenedX |
| 93 | +user:maria, act:read, report:openedx-usage-2025, org:OpenedX, True |
50 | 94 |
|
51 | | -# ===== DENY RULES TESTS ===== |
52 | | -user:bob, act:edit, lib:restricted-content, org:MIT, False |
53 | | -user:bob, act:read, lib:restricted-content, org:MIT, False |
54 | | - |
55 | | -# ===== SCOPE ISOLATION TESTS ===== |
56 | | -user:alice, act:manage, lib:openedx-lib, *, False |
57 | | -user:mary, act:edit, lib:math-basics, org:OpenedX, False |
58 | | -user:bob, act:edit, lib:mit-course, lib:mit-course, False |
59 | | - |
60 | | -# ===== UNAUTHORIZED ACCESS TESTS ===== |
| 95 | +# ===== UNAUTHORIZED USERS ===== |
| 96 | +# Unknown user - should be denied access |
61 | 97 | user:unknown, act:read, lib:math-basics, lib:math-basics, False |
62 | | -user:mary, act:read, lib:science-101, lib:science-101, False |
63 | 98 |
|
64 | | -# ===== SPECIAL CASE TESTS ===== |
| 99 | +# ====== SPECIAL CASE ====== |
65 | 100 | # This should be False, but it's returning True. This is a |
66 | 101 | # special case, and we can prevent it from the Open edX layer |
67 | 102 | user:mary, act:read, lib:science-101, lib:math-basics, False |
0 commit comments