Mercurial > p > roundup > code
annotate templates/minimal/schema.py @ 3909:e89bcb28f683
indexargs_url force ids to int
ids appear as hyperdb.String instances, which confused indexargs_url when they
appear in the filterspec. They need to be treated as treated as integers when
generating URLs.
It feels sort of hacky to check for 'id' like this but I'm at a loss for what
else to do in this case. Suggestions are welcome :)
Maybe we should look into using some other hyperdb class to represent ids?
this fixes [SF#783492]
Some trailing whitespace also got trimmed.
| author | Justus Pendleton <jpend@users.sourceforge.net> |
|---|---|
| date | Tue, 18 Sep 2007 16:59:42 +0000 |
| parents | a4393350e4eb |
| children |
| rev | line source |
|---|---|
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
1 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
2 # TRACKER SCHEMA |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
3 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
4 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
5 # Class automatically gets these properties: |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
6 # creation = Date() |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
7 # activity = Date() |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
8 # creator = Link('user') |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
9 # actor = Link('user') |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
10 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
11 # The "Minimal" template gets only one class, the required "user" |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
12 # class. That's it. And even that has the bare minimum of properties. |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
13 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
14 # Note: roles is a comma-separated string of Role names |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
15 user = Class(db, "user", username=String(), password=Password(), |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
16 address=String(), alternate_addresses=String(), roles=String()) |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
17 user.setkey("username") |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
18 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
19 # TRACKER SECURITY SETTINGS |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
20 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
21 # See the configuration and customisation document for information |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
22 # about security setup. |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
23 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
24 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
25 # REGULAR USERS |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
26 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
27 # Give the regular users access to the web and email interface |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
28 db.security.addPermissionToRole('User', 'Web Access') |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
29 db.security.addPermissionToRole('User', 'Email Access') |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
30 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
31 # May users view other user information? |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
32 # Comment these lines out if you don't want them to |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
33 db.security.addPermissionToRole('User', 'View', 'user') |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
34 |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
35 # Users should be able to edit their own details -- this permission is |
|
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
36 # limited to only the situation where the Viewed or Edited item is their own. |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
37 def own_record(db, userid, itemid): |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
38 '''Determine whether the userid matches the item being accessed.''' |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
39 return userid == itemid |
| 3041 | 40 p = db.security.addPermission(name='View', klass='user', check=own_record, |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
41 description="User is allowed to view their own user details") |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
42 db.security.addPermissionToRole('User', p) |
| 3041 | 43 p = db.security.addPermission(name='Edit', klass='user', check=own_record, |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
44 description="User is allowed to edit their own user details") |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
45 db.security.addPermissionToRole('User', p) |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
46 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
47 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
48 # ANONYMOUS USER PERMISSIONS |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
49 # |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
50 # Let anonymous users access the web interface. Note that almost all |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
51 # trackers will need this Permission. The only situation where it's not |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
52 # required is in a tracker that uses an HTTP Basic Authenticated front-end. |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
53 db.security.addPermissionToRole('Anonymous', 'Web Access') |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
54 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
55 # Let anonymous users access the email interface (note that this implies |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
56 # that they will be registered automatically, hence they will need the |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
57 # "Create" user Permission below) |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
58 db.security.addPermissionToRole('Anonymous', 'Email Access') |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
59 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
60 # Assign the appropriate permissions to the anonymous user's |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
61 # Anonymous Role. Choices here are: |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
62 # - Allow anonymous users to register |
|
2991
b9a55628a78d
more doc fixes
Richard Jones <richard@users.sourceforge.net>
parents:
2779
diff
changeset
|
63 db.security.addPermissionToRole('Anonymous', 'Create', 'user') |
|
2779
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
64 |
|
45c65345e909
migrate to new layout
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
65 # vim: set et sts=4 sw=4 : |
