예제 #1
0
파일: user.py 프로젝트: damnever/2L
    def update(self, **kwargs):
        for k, v in kwargs.items():
            if hasattr(self, k):
                setattr(self, k, v)
            elif hasattr(self.profile, k):
                if k == 'gold':
                    v += getattr(self.profile, k)
                setattr(self.profile, k, v)

        if self.profile.gold >= Level['gold']['topic_creation']:
            self.role |= Permission.get_by_role('topic_creation').bit
        if self.profile.gold >= Level['gold']['vote']:
            self.role |= Permission.get_by_role('vote').bit
        try:
            db_session.add(self)
            db_session.commit()
        except (DataError, IntegrityError, ProgrammingError):
            db_session.rollback()
            raise
예제 #2
0
파일: user.py 프로젝트: damnever/2L
 def has_permission(self, role):
     per = Permission.get_by_role(role)
     if not per:
         return None
     r = self.query.filter((self.role&per.bit)>0)
     return r.first()