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

« back to all changes in this revision

Viewing changes to ivle/database.py

  • Committer: Matt Giuca
  • Date: 2010-02-12 04:00:39 UTC
  • Revision ID: matt.giuca@gmail.com-20100212040039-vw9yf8p4s98g6nu9
Added an argument 'config' to every single get_permissions method throughout the program. All calls to get_permissions pass a config. This is to allow per-site policy configurations on permissions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
227
227
        """Find a user in a store by login name."""
228
228
        return store.find(cls, cls.login == unicode(login)).one()
229
229
 
230
 
    def get_permissions(self, user):
 
230
    def get_permissions(self, user, config):
231
231
        """Determine privileges held by a user over this object.
232
232
 
233
233
        If the user requesting privileges is this user or an admin,
257
257
    def __repr__(self):
258
258
        return "<%s '%s'>" % (type(self).__name__, self.short_name)
259
259
 
260
 
    def get_permissions(self, user):
 
260
    def get_permissions(self, user, config):
261
261
        """Determine privileges held by a user over this object.
262
262
 
263
263
        If the user requesting privileges is an admin, they may edit.
371
371
                               Enrolment.offering_id == self.id).one()
372
372
        Store.of(enrolment).remove(enrolment)
373
373
 
374
 
    def get_permissions(self, user):
 
374
    def get_permissions(self, user, config):
375
375
        perms = set()
376
376
        if user is not None:
377
377
            enrolment = self.get_enrolment(user)
470
470
        return "<%s %d in %r>" % (type(self).__name__, self.id,
471
471
                                  self.offering)
472
472
 
473
 
    def get_permissions(self, user):
474
 
        return self.offering.get_permissions(user)
 
473
    def get_permissions(self, user, config):
 
474
        return self.offering.get_permissions(user, config)
475
475
 
476
476
    def get_groups_for_user(self, user):
477
477
        """List all groups in this offering of which the user is a member."""
575
575
 
576
576
        return ps
577
577
 
578
 
    def get_permissions(self, user):
579
 
        return self.project_set.offering.get_permissions(user)
 
578
    def get_permissions(self, user, config):
 
579
        return self.project_set.offering.get_permissions(user, config)
580
580
 
581
581
    @property
582
582
    def latest_submissions(self):
660
660
            (not active_only) or (Semester.state == u'current'))
661
661
 
662
662
 
663
 
    def get_permissions(self, user):
 
663
    def get_permissions(self, user, config):
664
664
        if user.admin or user in self.members:
665
665
            return set(['submit_project'])
666
666
        else:
843
843
    def __repr__(self):
844
844
        return "<%s %s>" % (type(self).__name__, self.name)
845
845
 
846
 
    def get_permissions(self, user):
847
 
        return self.global_permissions(user)
 
846
    def get_permissions(self, user, config):
 
847
        return self.global_permissions(user, config)
848
848
 
849
849
    @staticmethod
850
 
    def global_permissions(user):
 
850
    def global_permissions(user, config):
851
851
        """Gets the set of permissions this user has over *all* exercises.
852
852
        This is used to determine who may view the exercises list, and create
853
853
        new exercises."""
927
927
        store.find(WorksheetExercise,
928
928
            WorksheetExercise.worksheet == self).remove()
929
929
 
930
 
    def get_permissions(self, user):
 
930
    def get_permissions(self, user, config):
931
931
        # Almost the same permissions as for the offering itself
932
 
        perms = self.offering.get_permissions(user)
 
932
        perms = self.offering.get_permissions(user, config)
933
933
        # However, "edit" permission is derived from the "edit_worksheets"
934
934
        # permission of the offering
935
935
        if 'edit_worksheets' in perms:
987
987
        return "<%s %s in %s>" % (type(self).__name__, self.exercise.name,
988
988
                                  self.worksheet.identifier)
989
989
 
990
 
    def get_permissions(self, user):
991
 
        return self.worksheet.get_permissions(user)
 
990
    def get_permissions(self, user, config):
 
991
        return self.worksheet.get_permissions(user, config)
992
992
 
993
993
 
994
994
class ExerciseSave(Storm):
1041
1041
    complete = Bool()
1042
1042
    active = Bool()
1043
1043
 
1044
 
    def get_permissions(self, user):
 
1044
    def get_permissions(self, user, config):
1045
1045
        return set(['view']) if user is self.user else set()
1046
1046
 
1047
1047
class TestSuite(Storm):