Mercurial > p > roundup > code
annotate share/roundup/templates/jinja2/schema.py @ 8231:984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
Also makes comparing them easier.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 21 Dec 2024 15:23:12 -0500 |
| parents | c087ad45bf4d |
| children |
| rev | line source |
|---|---|
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
1 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
2 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
3 # TRACKER SCHEMA |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
4 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
5 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
6 # Class automatically gets these properties: |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
7 # creation = Date() |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
8 # activity = Date() |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
9 # creator = Link('user') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
10 # actor = Link('user') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
11 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
12 # Priorities |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
13 pri = Class(db, "priority", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
14 name=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
15 order=Number()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
16 pri.setkey("name") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
17 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
18 # Statuses |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
19 stat = Class(db, "status", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
20 name=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
21 order=Number()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
22 stat.setkey("name") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
23 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
24 # Keywords |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
25 keyword = Class(db, "keyword", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
26 name=String()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
27 keyword.setkey("name") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
28 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
29 # User-defined saved searches |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
30 query = Class(db, "query", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
31 klass=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
32 name=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
33 url=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
34 private_for=Link('user')) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
35 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
36 # add any additional database schema configuration here |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
37 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
38 user = Class(db, "user", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
39 username=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
40 password=Password(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
41 address=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
42 realname=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
43 phone=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
44 organisation=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
45 alternate_addresses=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
46 queries=Multilink('query'), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
47 roles=String(), # comma-separated string of Role names |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
48 timezone=String()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
49 user.setkey("username") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
50 db.security.addPermission(name='Register', klass='user', |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
51 description='User is allowed to register new user') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
52 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
53 # FileClass automatically gets this property in addition to the Class ones: |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
54 # content = String() [saved to disk in <tracker home>/db/files/] |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
55 # type = String() [MIME type of the content, default 'text/plain'] |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
56 msg = FileClass(db, "msg", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
57 author=Link("user", do_journal='no'), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
58 recipients=Multilink("user", do_journal='no'), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
59 date=Date(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
60 summary=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
61 files=Multilink("file"), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
62 messageid=String(), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
63 inreplyto=String()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
64 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
65 file = FileClass(db, "file", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
66 name=String()) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
67 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
68 # IssueClass automatically gets these properties in addition to the Class ones: |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
69 # title = String() |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
70 # messages = Multilink("msg") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
71 # files = Multilink("file") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
72 # nosy = Multilink("user") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
73 # superseder = Multilink("issue") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
74 issue = IssueClass(db, "issue", |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
75 assignedto=Link("user"), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
76 keyword=Multilink("keyword"), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
77 priority=Link("priority"), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
78 status=Link("status")) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
79 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
80 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
81 # TRACKER SECURITY SETTINGS |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
82 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
83 # See the configuration and customisation document for information |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
84 # about security setup. |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
85 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
86 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
87 # REGULAR USERS |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
88 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
89 # Give the regular users access to the web and email interface |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
90 db.security.addPermissionToRole('User', 'Web Access') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
91 db.security.addPermissionToRole('User', 'Email Access') |
|
5879
94a7669677ae
add permissions to control user of rest and xmlrpc API interfaces.
John Rouillard <rouilj@ieee.org>
parents:
5113
diff
changeset
|
92 db.security.addPermissionToRole('User', 'Rest Access') |
|
94a7669677ae
add permissions to control user of rest and xmlrpc API interfaces.
John Rouillard <rouilj@ieee.org>
parents:
5113
diff
changeset
|
93 db.security.addPermissionToRole('User', 'Xmlrpc Access') |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
94 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
95 # Assign the access and edit Permissions for issue, file and message |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
96 # to regular users now |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
97 for cl in 'issue', 'file', 'msg', 'keyword': |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
98 db.security.addPermissionToRole('User', 'View', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
99 db.security.addPermissionToRole('User', 'Edit', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
100 db.security.addPermissionToRole('User', 'Create', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
101 for cl in 'priority', 'status': |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
102 db.security.addPermissionToRole('User', 'View', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
103 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
104 # May users view other user information? Comment these lines out |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
105 # if you don't want them to |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
106 p = db.security.addPermission(name='View', klass='user', |
|
4902
a403c29ffaf9
Security fix default user permissions
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4751
diff
changeset
|
107 properties=('id', 'organisation', 'phone', 'realname', 'timezone', |
|
a403c29ffaf9
Security fix default user permissions
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4751
diff
changeset
|
108 'username')) |
|
a403c29ffaf9
Security fix default user permissions
Ralf Schlatterbeck <rsc@runtux.com>
parents:
4751
diff
changeset
|
109 db.security.addPermissionToRole('User', p) |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
110 |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
111 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
112 # Users should be able to edit their own details -- this permission is |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
113 # limited to only the situation where the Viewed or Edited item is their own. |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
114 def own_record(db, userid, itemid): |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
115 '''Determine whether the userid matches the item being accessed.''' |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
116 return userid == itemid |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
117 |
|
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
118 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
119 p = db.security.addPermission(name='View', klass='user', check=own_record, |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
120 description="User is allowed to view their own user details") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
121 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
122 p = db.security.addPermission(name='Edit', klass='user', check=own_record, |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
123 properties=('username', 'password', 'address', 'realname', 'phone', |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
124 'organisation', 'alternate_addresses', 'queries', 'timezone'), |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
125 description="User is allowed to edit their own user details") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
126 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
127 |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
128 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
129 # Users should be able to edit and view their own queries. They should also |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
130 # be able to view any marked as not private. They should not be able to |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
131 # edit others' queries, even if they're not private |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
132 def view_query(db, userid, itemid): |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
133 private_for = db.query.get(itemid, 'private_for') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
134 if not private_for: return True |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
135 return userid == private_for |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
136 |
|
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
137 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
138 def edit_query(db, userid, itemid): |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
139 return userid == db.query.get(itemid, 'creator') |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
140 |
|
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
141 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
142 p = db.security.addPermission(name='View', klass='query', check=view_query, |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
143 description="User is allowed to view their own and public queries") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
144 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
145 p = db.security.addPermission(name='Search', klass='query') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
146 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
147 p = db.security.addPermission(name='Edit', klass='query', check=edit_query, |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
148 description="User is allowed to edit their queries") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
149 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
150 p = db.security.addPermission(name='Retire', klass='query', check=edit_query, |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
151 description="User is allowed to retire their queries") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
152 db.security.addPermissionToRole('User', p) |
|
6076
bae060c8a5ac
jinja2: added "Restore" query permission to default schema (as is the case with classic template)
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5879
diff
changeset
|
153 p = db.security.addPermission(name='Restore', klass='query', check=edit_query, |
|
bae060c8a5ac
jinja2: added "Restore" query permission to default schema (as is the case with classic template)
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5879
diff
changeset
|
154 description="User is allowed to restore their queries") |
|
bae060c8a5ac
jinja2: added "Restore" query permission to default schema (as is the case with classic template)
Christof Meerwald <cmeerw@cmeerw.org>
parents:
5879
diff
changeset
|
155 db.security.addPermissionToRole('User', p) |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
156 p = db.security.addPermission(name='Create', klass='query', |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
157 description="User is allowed to create queries") |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
158 db.security.addPermissionToRole('User', p) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
159 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
160 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
161 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
162 # ANONYMOUS USER PERMISSIONS |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
163 # |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
164 # Let anonymous users access the web interface. Note that almost all |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
165 # trackers will need this Permission. The only situation where it's not |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
166 # required is in a tracker that uses an HTTP Basic Authenticated front-end. |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
167 db.security.addPermissionToRole('Anonymous', 'Web Access') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
168 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
169 # Let anonymous users access the email interface (note that this implies |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
170 # that they will be registered automatically, hence they will need the |
|
7132
c087ad45bf4d
update Anonymous Create user to Register user permissions
John Rouillard <rouilj@ieee.org>
parents:
6076
diff
changeset
|
171 # "Register" user Permission below) |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
172 # This is disabled by default to stop spam from auto-registering users on |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
173 # public trackers. |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
174 #db.security.addPermissionToRole('Anonymous', 'Email Access') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
175 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
176 # Assign the appropriate permissions to the anonymous user's Anonymous |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
177 # Role. Choices here are: |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
178 # - Allow anonymous users to register |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
179 db.security.addPermissionToRole('Anonymous', 'Register', 'user') |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
180 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
181 # Allow anonymous users access to view issues (and the related, linked |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
182 # information) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
183 for cl in 'issue', 'file', 'msg', 'keyword', 'priority', 'status': |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
184 db.security.addPermissionToRole('Anonymous', 'View', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
185 |
|
5113
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
186 # Allow the anonymous user to use the "Show Unassigned" search. |
|
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
187 # It acts like "Show Open" if this permission is not available. |
|
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
188 # If you are running a tracker that does not allow read access for |
|
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
189 # anonymous, you should remove this entry as it can be used to perform |
|
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
190 # a username guessing attack against a roundup install. |
|
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
191 p = db.security.addPermission(name='Search', klass='user') |
|
8231
984bc9f94ec6
chore: format schema.pys in templates so ruff is ok.
John Rouillard <rouilj@ieee.org>
parents:
7132
diff
changeset
|
192 db.security.addPermissionToRole('Anonymous', p) |
|
5113
cf112b90fa8d
issue2550855: added search perms for anonymous to the user class.
John Rouillard <rouilj@ieee.org>
parents:
4902
diff
changeset
|
193 |
|
4751
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
194 # [OPTIONAL] |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
195 # Allow anonymous users access to create or edit "issue" items (and the |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
196 # related file and message items) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
197 #for cl in 'issue', 'file', 'msg': |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
198 # db.security.addPermissionToRole('Anonymous', 'Create', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
199 # db.security.addPermissionToRole('Anonymous', 'Edit', cl) |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
200 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
201 |
|
a8c95abaf3fb
Work in progress - template based on jinja2, bootstrap and classic schema
Pradip Caulagi <caulagi@gmail.com>
parents:
diff
changeset
|
202 # vim: set filetype=python sts=4 sw=4 et si : |
