~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/studpath.py

  • Committer: me at id
  • Date: 2009-01-15 03:02:36 UTC
  • mto: This revision was merged to the branch mainline in revision 1090.
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:branches%2Fstorm:1150
ivle.makeuser.make_jail: Just take an ivle.database.User, rather than some
    attributes.

services/usrmgt-server: Give make_jail a User.

bin/ivle-remakeuser: Rewrite to use ivle.database.User.

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
    urlpath: See urlpath in url_to_local.
82
82
 
83
83
    >>> url_to_jailpaths("joe/mydir/myfile")
84
 
    ('joe', '/var/lib/ivle/jailmounts/joe', '/home/joe/mydir/myfile')
 
84
    ("joe", "/home/informatics/jails/joe", "home/joe/mydir/myfile")
85
85
 
86
86
    >>> url_to_jailpaths("")
87
87
    (None, None, None)
132
132
        return False
133
133
 
134
134
 
135
 
def authorize(req, user):
 
135
def authorize(req):
136
136
    """Given a request, checks whether req.user is allowed to
137
137
    access req.path. Returns None on authorization success. Raises
138
138
    HTTP_FORBIDDEN on failure.
145
145
    urlpath = os.path.normpath(req.path)
146
146
    # Now if it begins with ".." or separator, then it's illegal
147
147
    if urlpath.startswith("..") or urlpath.startswith(os.sep):
148
 
        return False
 
148
        req.throw_error(req.HTTP_FORBIDDEN)
149
149
 
150
150
    (owner, _) = util.split_path(urlpath)
151
 
    if user.login != owner:
152
 
        return False
153
 
    return True
 
151
    if req.user.login != owner:
 
152
        req.throw_error(req.HTTP_FORBIDDEN)
154
153
 
155
154
def authorize_public(req):
156
155
    """A different kind of authorization. Rather than making sure the
163
162
    raised on failure.
164
163
    """
165
164
    _, path = url_to_local(req.path)
166
 
 
167
 
    # Walk up the tree, and find the deepest directory.
168
 
    while not os.path.isdir(path):
169
 
        path = os.path.dirname(path)
170
 
 
171
 
    if not (worldreadable(path) and published(path)):
172
 
        return False
173
 
    return True
 
165
    dirpath, _ = os.path.split(path)
 
166
    if not (worldreadable(dirpath) and published(dirpath)):
 
167
        req.throw_error(req.HTTP_FORBIDDEN)