Skip to content

Instantly share code, notes, and snippets.

@alexanderjulo
Created August 27, 2012 19:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexanderjulo/3491663 to your computer and use it in GitHub Desktop.
Save alexanderjulo/3491663 to your computer and use it in GitHub Desktop.
permissions approach
class User(object):
def permission_list(self):
permissions = Permission.query.filter_by(user_id=self).all()
l = []
for permission in permissions:
l.append((permission.to, permission.value))
return l
def permission_has(self, to):
permission = Permission.query.filter_by(user_id=self.id, to=to).first()
if not permission:
return False
else:
return permission.value
def permission_grant(self, to):
permission = Permission.query.filter_by(user_id=user.id, to=to).first()
if not permission:
permission = Permission()
permission.user_id = self.id
permission.to = to
permission.value = True
db.sesssion.add(permission)
db.session.commit()
def permission_revoke(self, to):
permission = Permission.query.filter_by(user_id=user.id, to=to).first()
if permission:
permission.value = False
db.session.commit()
class Permission(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('User.id'))
to = db.Column(db.String(30))
value = db.Column(db.Boolean)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment