Mercurial > p > roundup > code
annotate share/roundup/templates/devel/schema.py @ 4141:c2e920eaee0a gsoc-2009
Implemented schema changes for svn-roundup support
| author | Pygi <pygi@users.sourceforge.net> |
|---|---|
| date | Mon, 29 Jun 2009 18:59:48 +0000 |
| parents | 115e9883311e |
| children | 2b554b262d29 |
| rev | line source |
|---|---|
|
4122
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
1 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
2 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
3 # TRACKER SCHEMA |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
4 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
5 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
6 # Class automatically gets these properties: |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
7 # creation = Date() |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
8 # activity = Date() |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
9 # creator = Link('user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
10 # actor = Link('user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
11 |
|
4141
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
12 |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
13 # This is the repository class, then you can see/edit repositories in pages like |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
14 # "http://tracker/url/svn_repo1" |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
15 svn_repo = Class(db, "svn_repo", |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
16 name=String(), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
17 host=String(), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
18 path=String(), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
19 viewcvs_url=String()) |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
20 svn_repo.setkey('name') |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
21 |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
22 # Stores revision data, lets you see/edit revisions in pages like |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
23 # "http://tracker/url/svn_rev1". The svn_rev.item.html template is currently |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
24 # broken, but this works fine without it. |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
25 svn_rev = Class(db, "svn_rev", |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
26 repository=Link('svn_repo'), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
27 revision=Number()) |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
28 |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
29 |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
30 |
|
4122
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
31 # Component |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
32 component = Class(db, 'component', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
33 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
34 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
35 order=Number(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
36 assign_to=Link('user')) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
37 component.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
38 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
39 # Version |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
40 version = Class(db, 'version', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
41 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
42 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
43 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
44 version.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
45 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
46 # Severity |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
47 severity = Class(db, 'severity', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
48 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
49 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
50 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
51 severity.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
52 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
53 # Priority |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
54 priority = Class(db, 'priority', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
55 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
56 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
57 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
58 priority.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
59 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
60 # Status |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
61 status = Class(db, "status", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
62 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
63 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
64 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
65 status.setkey("name") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
66 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
67 # Resolution |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
68 resolution = Class(db, "resolution", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
69 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
70 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
71 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
72 resolution.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
73 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
74 # Keyword |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
75 keyword = Class(db, "keyword", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
76 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
77 description=String()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
78 keyword.setkey("name") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
79 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
80 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
81 # User-defined saved searches |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
82 query = Class(db, "query", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
83 klass=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
84 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
85 url=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
86 private_for=Link('user')) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
87 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
88 # add any additional database schema configuration here |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
89 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
90 user = Class(db, "user", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
91 username=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
92 password=Password(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
93 address=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
94 realname=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
95 phone=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
96 organisation=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
97 alternate_addresses=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
98 queries=Multilink('query'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
99 roles=String(), # comma-separated string of Role names |
|
4141
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
100 timezone=String(), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
101 svn_name=String()) |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
102 |
|
4122
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
103 user.setkey("username") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
104 |
|
4141
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
105 # Permissions for revision creation and repository viewing. |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
106 for role in ('User',): |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
107 db.security.addPermissionToRole(role, 'Create', 'svn_rev') |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
108 db.security.addPermissionToRole(role, 'View', 'svn_repo') |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
109 |
|
4122
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
110 # FileClass automatically gets this property in addition to the Class ones: |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
111 # content = String() [saved to disk in <tracker home>/db/files/] |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
112 # type = String() [MIME type of the content, default 'text/plain'] |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
113 msg = FileClass(db, "msg", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
114 author=Link("user", do_journal='no'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
115 recipients=Multilink("user", do_journal='no'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
116 date=Date(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
117 summary=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
118 files=Multilink("file"), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
119 messageid=String(), |
|
4141
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
120 inreplyto=String(), |
|
c2e920eaee0a
Implemented schema changes for svn-roundup support
Pygi <pygi@users.sourceforge.net>
parents:
4122
diff
changeset
|
121 revision=Link("svn_rev")) |
|
4122
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
122 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
123 file = FileClass(db, "file", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
124 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
125 description=String(indexme='yes')) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
126 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
127 # Bug Type |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
128 bug_type = Class(db, 'bug_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
129 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
130 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
131 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
132 bug_type.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
133 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
134 # IssueClass automatically gets these properties in addition to the Class ones: |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
135 # title = String() |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
136 # messages = Multilink("msg") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
137 # files = Multilink("file") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
138 # nosy = Multilink("user") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
139 # superseder = Multilink("issue") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
140 bug = IssueClass(db, "bug", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
141 type=Link('bug_type'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
142 components=Multilink('component'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
143 versions=Multilink('version'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
144 severity=Link('severity'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
145 priority=Link('priority'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
146 dependencies=Multilink('bug'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
147 assignee=Link('user'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
148 status=Link('status'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
149 resolution=Link('resolution'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
150 superseder=Link('bug'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
151 keywords=Multilink('keyword')) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
152 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
153 # Task Type |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
154 task_type = Class(db, 'task_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
155 name=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
156 description=String(), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
157 order=Number()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
158 task_type.setkey('name') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
159 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
160 # IssueClass automatically gets these properties in addition to the Class ones: |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
161 # title = String() |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
162 # messages = Multilink("msg") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
163 # files = Multilink("file") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
164 # nosy = Multilink("user") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
165 # superseder = Multilink("issue") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
166 task = IssueClass(db, "task", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
167 type=Link('task_type'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
168 components=Multilink('component'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
169 priority=Link('priority'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
170 dependencies=Multilink('task'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
171 assignee=Multilink('user'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
172 status=Link('status'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
173 resolution=Link('resolution'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
174 solves=Link('bug')) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
175 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
176 milestone = IssueClass(db, "milestone", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
177 bugs=Multilink("bug"), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
178 tasks=Multilink("task"), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
179 status=Link("status"), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
180 release_date=String()) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
181 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
182 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
183 # TRACKER SECURITY SETTINGS |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
184 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
185 # See the configuration and customisation document for information |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
186 # about security setup. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
187 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
188 db.security.addRole(name='Developer', description='A developer') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
189 db.security.addRole(name='Coordinator', description='A coordinator') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
190 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
191 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
192 # REGULAR USERS |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
193 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
194 # Give the regular users access to the web and email interface |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
195 for r in 'User', 'Developer', 'Coordinator': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
196 db.security.addPermissionToRole(r, 'Web Access') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
197 db.security.addPermissionToRole(r, 'Email Access') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
198 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
199 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
200 # User permissions |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
201 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
202 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
203 for cl in ('severity', 'component', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
204 'version', 'priority', 'status', 'resolution', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
205 'bug_type', 'bug', 'task_type', 'task', 'milestone', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
206 'keyword', 'file', 'msg'): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
207 db.security.addPermissionToRole('User', 'View', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
208 db.security.addPermissionToRole('Anonymous', 'View', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
209 db.security.addPermissionToRole('User', 'Create', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
210 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
211 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
212 def may_edit_file(db, userid, itemid): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
213 return userid == db.file.get(itemid, "creator") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
214 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
215 p = db.security.addPermission(name='Edit', klass='file', check=may_edit_file, |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
216 description="User is allowed to remove their own files") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
217 db.security.addPermissionToRole('User', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
218 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
219 p = db.security.addPermission(name='Create', klass='bug', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
220 properties=('title', 'bug_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
221 'components', 'versions', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
222 'severity', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
223 'messages', 'files', 'nosy'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
224 description='User can report and discuss bugs') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
225 db.security.addPermissionToRole('User', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
226 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
227 p = db.security.addPermission(name='Edit', klass='bug', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
228 properties=('title', 'bug_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
229 'components', 'versions', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
230 'severity', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
231 'messages', 'files', 'nosy'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
232 description='User can report and discuss bugs') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
233 db.security.addPermissionToRole('User', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
234 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
235 p = db.security.addPermission(name='Create', klass='task', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
236 properties=('title', 'task_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
237 'components', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
238 'messages', 'files', 'nosy'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
239 description='Developer can create and discuss tasks') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
240 db.security.addPermissionToRole('Developer', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
241 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
242 p = db.security.addPermission(name='Edit', klass='task', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
243 properties=('title', 'task_type', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
244 'components', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
245 'messages', 'files', 'nosy'), |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
246 description='Developer can create and discuss tasks') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
247 db.security.addPermissionToRole('Developer', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
248 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
249 p = db.security.addPermission(name='Create', klass='milestone', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
250 description='Coordinator can create and discuss milestones') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
251 db.security.addPermissionToRole('Coordinator', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
252 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
253 p = db.security.addPermission(name='Edit', klass='milestone', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
254 description='Coordinator can create and discuss milestones') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
255 db.security.addPermissionToRole('Coordinator', p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
256 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
257 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
258 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
259 # Developer permissions |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
260 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
261 for cl in ('bug_type', 'severity', 'component', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
262 'version', 'priority', 'status', 'resolution', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
263 'bug', 'file', 'msg', 'keyword'): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
264 db.security.addPermissionToRole('Developer', 'View', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
265 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
266 for cl in ('bug', 'file', 'msg', 'keyword'): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
267 db.security.addPermissionToRole('Developer', 'Edit', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
268 db.security.addPermissionToRole('Developer', 'Create', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
269 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
270 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
271 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
272 # Coordinator permissions |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
273 ########################## |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
274 for cl in ('bug_type', 'task_type', 'severity', 'component', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
275 'version', 'priority', 'status', 'resolution', 'bug', 'task', 'file', 'msg'): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
276 db.security.addPermissionToRole('Coordinator', 'View', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
277 db.security.addPermissionToRole('Coordinator', 'Edit', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
278 db.security.addPermissionToRole('Coordinator', 'Create', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
279 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
280 # May users view other user information? Comment these lines out |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
281 # if you don't want them to |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
282 db.security.addPermissionToRole('User', 'View', 'user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
283 db.security.addPermissionToRole('Developer', 'View', 'user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
284 db.security.addPermissionToRole('Coordinator', 'View', 'user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
285 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
286 # Allow Coordinator to edit any user, including their roles. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
287 db.security.addPermissionToRole('Coordinator', 'Edit', 'user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
288 db.security.addPermissionToRole('Coordinator', 'Web Roles') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
289 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
290 # Users should be able to edit their own details -- this permission is |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
291 # limited to only the situation where the Viewed or Edited item is their own. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
292 def own_record(db, userid, itemid): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
293 '''Determine whether the userid matches the item being accessed.''' |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
294 return userid == itemid |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
295 p = db.security.addPermission(name='View', klass='user', check=own_record, |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
296 description="User is allowed to view their own user details") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
297 for r in 'User', 'Developer', 'Coordinator': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
298 db.security.addPermissionToRole(r, p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
299 p = db.security.addPermission(name='Edit', klass='user', check=own_record, |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
300 description="User is allowed to edit their own user details", |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
301 properties=('username', 'password', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
302 'address', 'realname', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
303 'phone', 'organization', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
304 'alternate_addresses', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
305 'queries', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
306 'timezone')) # Note: 'roles' excluded - users should not be able to edit their own roles. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
307 for r in 'User', 'Developer': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
308 db.security.addPermissionToRole(r, p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
309 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
310 # Users should be able to edit and view their own queries. They should also |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
311 # be able to view any marked as not private. They should not be able to |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
312 # edit others' queries, even if they're not private |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
313 def view_query(db, userid, itemid): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
314 private_for = db.query.get(itemid, 'private_for') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
315 if not private_for: return True |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
316 return userid == private_for |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
317 def edit_query(db, userid, itemid): |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
318 return userid == db.query.get(itemid, 'creator') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
319 p = db.security.addPermission(name='View', klass='query', check=view_query, |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
320 description="User is allowed to view their own and public queries") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
321 for r in 'User', 'Developer', 'Coordinator': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
322 db.security.addPermissionToRole(r, p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
323 p = db.security.addPermission(name='Edit', klass='query', check=edit_query, |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
324 description="User is allowed to edit their queries") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
325 for r in 'User', 'Developer', 'Coordinator': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
326 db.security.addPermissionToRole(r, p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
327 p = db.security.addPermission(name='Create', klass='query', |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
328 description="User is allowed to create queries") |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
329 for r in 'User', 'Developer', 'Coordinator': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
330 db.security.addPermissionToRole(r, p) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
331 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
332 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
333 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
334 # ANONYMOUS USER PERMISSIONS |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
335 # |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
336 # Let anonymous users access the web interface. Note that almost all |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
337 # trackers will need this Permission. The only situation where it's not |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
338 # required is in a tracker that uses an HTTP Basic Authenticated front-end. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
339 db.security.addPermissionToRole('Anonymous', 'Web Access') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
340 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
341 # Let anonymous users access the email interface (note that this implies |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
342 # that they will be registered automatically, hence they will need the |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
343 # "Create" user Permission below) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
344 # This is disabled by default to stop spam from auto-registering users on |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
345 # public trackers. |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
346 #db.security.addPermissionToRole('Anonymous', 'Email Access') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
347 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
348 # Assign the appropriate permissions to the anonymous user's Anonymous |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
349 # Role. Choices here are: |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
350 # - Allow anonymous users to register |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
351 db.security.addPermissionToRole('Anonymous', 'Create', 'user') |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
352 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
353 # Allow anonymous users access to view issues (and the related, linked |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
354 # information). |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
355 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
356 for cl in 'bug', 'task', 'milestone', 'severity', 'status', 'resolution', 'msg', 'file': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
357 db.security.addPermissionToRole('Anonymous', 'View', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
358 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
359 # [OPTIONAL] |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
360 # Allow anonymous users access to create or edit "issue" items (and the |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
361 # related file and message items) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
362 #for cl in 'issue', 'file', 'msg': |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
363 # db.security.addPermissionToRole('Anonymous', 'Create', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
364 # db.security.addPermissionToRole('Anonymous', 'Edit', cl) |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
365 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
366 |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
367 # vim: set filetype=python sts=4 sw=4 et si : |
|
115e9883311e
Add new tracker template sandbox.
Stefan Seefeld <stefan@seefeld.name>
parents:
diff
changeset
|
368 |
