54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
from datetime import datetime
|
|
from sqlalchemy import Boolean, Column, DateTime, Integer, String, Text
|
|
from db import Base
|
|
import utils
|
|
|
|
|
|
class AccessLevel(Base):
|
|
__tablename__ = "access_level"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
title = Column(String, unique=True, index=True)
|
|
description = Column(Text)
|
|
created_at = Column(DateTime, default=datetime.now)
|
|
updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now)
|
|
|
|
# permissions
|
|
receiving_edit = Column(Boolean, default=False)
|
|
refund_request_edit = Column(Boolean, default=False)
|
|
refund_request_confirm = Column(Boolean, default=False)
|
|
debit_request_edit = Column(Boolean, default=False)
|
|
debit_request_confirm = Column(Boolean, default=False)
|
|
tools_creation = Column(Boolean, default=False)
|
|
tools_registration = Column(Boolean, default=False)
|
|
tools_registration_edit = Column(Boolean, default=False)
|
|
tools_edit = Column(Boolean, default=False)
|
|
tools_achievement = Column(Boolean, default=False)
|
|
users_creation = Column(Boolean, default=False)
|
|
users_edit = Column(Boolean, default=False)
|
|
users_disabling = Column(Boolean, default=False)
|
|
users_view = Column(Boolean, default=False)
|
|
available_own_toolbox = Column(Boolean, default=False)
|
|
view_all_toolboxes = Column(Boolean, default=False)
|
|
view_requests = Column(Boolean, default=False)
|
|
access_level_view = Column(Boolean, default=False)
|
|
access_level_edit = Column(Boolean, default=False)
|
|
manage_toolboxes = Column(Boolean, default=False)
|
|
|
|
def __init__(self, **kwargs):
|
|
for key, value in kwargs.items():
|
|
setattr(self, key, value)
|
|
|
|
def toDict(self):
|
|
return utils.toDict(self)
|
|
|
|
async def save(self):
|
|
from db import CRUD
|
|
|
|
return await CRUD.create(self, refresh=True)
|
|
|
|
async def edit(self, **kwargs):
|
|
from db import CRUD
|
|
|
|
return await CRUD.update(AccessLevel, self.id, **kwargs)
|