Fixed a lot of permissions

This commit is contained in:
Amritanshu
2019-08-21 00:07:46 +05:30
parent 70d31fea5e
commit abc29844d3
11 changed files with 133 additions and 84 deletions

View File

@ -49,6 +49,7 @@ def main(argv=sys.argv):
dbsession.add(Permission("Guest Book", uuid.UUID("7669dfc9-cc75-4e48-b267-145c8832a83c")))
dbsession.add(Permission("Printers", uuid.UUID("5b66c6f6-003a-4ef8-ba28-49b8ff1ac33c")))
dbsession.add(Permission("Sections", uuid.UUID("c973f32c-a37b-496a-8dc5-60d2e4c39e97")))
dbsession.add(Permission("Section Printers", uuid.UUID("7a04ba63-5d08-4078-9051-a6d91cce3e48")))
else:
add_permissions(dbsession)

View File

@ -11,7 +11,7 @@ from barker.models.validation_exception import ValidationError
request_method="POST",
route_name="v1_devices_new",
renderer="json",
permission="Tables",
permission="Devices",
trans=True,
)
def save(request):
@ -33,7 +33,7 @@ def save(request):
request_method="PUT",
route_name="v1_devices_id",
renderer="json",
permission="Tables",
permission="Devices",
trans=True,
)
def update(request):
@ -57,7 +57,7 @@ def update(request):
request_method="DELETE",
route_name="v1_devices_id",
renderer="json",
permission="Tables",
permission="Devices",
trans=True,
)
def delete(request):
@ -80,7 +80,7 @@ def delete(request):
request_method="GET",
route_name="v1_devices_new",
renderer="json",
permission="Tables",
permission="Authenticated",
)
def show_blank(request):
return device_info(None, request.dbsession)
@ -90,7 +90,7 @@ def show_blank(request):
request_method="GET",
route_name="v1_devices_id",
renderer="json",
permission="Tables",
permission="Authenticated",
)
def show_id(request):
return device_info(uuid.UUID(request.matchdict["id"]), request.dbsession)

View File

@ -14,7 +14,7 @@ from barker.models.validation_exception import ValidationError
request_method="POST",
route_name="v1_menu_categories_new",
renderer="json",
permission="Menu Categories",
permission="Products",
trans=True,
)
def save(request):
@ -39,7 +39,7 @@ def save(request):
request_method="PUT",
route_name="v1_menu_categories_id",
renderer="json",
permission="Menu Categories",
permission="Products",
trans=True,
)
def update(request):
@ -69,7 +69,7 @@ def update(request):
request_method="DELETE",
route_name="v1_menu_categories_id",
renderer="json",
permission="Menu Categories",
permission="Products",
trans=True,
)
def delete(request):
@ -107,7 +107,7 @@ def show_blank(request):
request_method="GET",
route_name="v1_menu_categories_id",
renderer="json",
permission="Menu Categories",
permission="Products",
)
def show_id(request):
return menu_category_info(uuid.UUID(request.matchdict["id"]), request.dbsession)
@ -183,7 +183,7 @@ def sale_list(request):
request_method="POST",
route_name="v1_menu_categories_list",
renderer="json",
permission="Menu Categories",
permission="Products",
trans=True,
)
def sort_order(request):

View File

@ -7,40 +7,60 @@ from pyramid.view import view_config
from barker.models import Permission, Role
@view_config(request_method='POST', route_name='v1_roles_new', renderer='json', permission='Users', trans=True)
@view_config(
request_method="POST",
route_name="v1_roles_new",
renderer="json",
permission="Users",
trans=True,
)
def save(request):
item = Role(request.json_body['name'])
item = Role(request.json_body["name"])
request.dbsession.add(item)
add_permissions(item, request.json_body['permissions'], request.dbsession)
add_permissions(item, request.json_body["permissions"], request.dbsession)
transaction.commit()
return role_info(item.id, request.dbsession)
@view_config(request_method='PUT', route_name='v1_roles_id', renderer='json', permission='Users', trans=True)
@view_config(
request_method="PUT",
route_name="v1_roles_id",
renderer="json",
permission="Users",
trans=True,
)
def update(request):
id_ = request.matchdict['id']
id_ = request.matchdict["id"]
item = request.dbsession.query(Role).filter(Role.id == uuid.UUID(id_)).one()
item.name = request.json_body['name']
add_permissions(item, request.json_body['permissions'], request.dbsession)
item.name = request.json_body["name"]
add_permissions(item, request.json_body["permissions"], request.dbsession)
transaction.commit()
return role_info(item.id, request.dbsession)
def add_permissions(role, permissions, dbsession):
for permission in permissions:
id_ = uuid.UUID(permission['id'])
id_ = uuid.UUID(permission["id"])
rp = [p for p in role.permissions if p.id == id_]
rp = None if len(rp) == 0 else rp[0]
if permission['enabled'] and rp is None:
permission_object = dbsession.query(Permission).filter(Permission.id == id_).one()
if permission["enabled"] and rp is None:
permission_object = (
dbsession.query(Permission).filter(Permission.id == id_).one()
)
role.permissions.append(permission_object)
elif not permission['enabled'] and rp:
elif not permission["enabled"] and rp:
role.permissions.remove(rp)
@view_config(request_method='DELETE', route_name='v1_roles_id', renderer='json', permission='Users', trans=True)
@view_config(
request_method="DELETE",
route_name="v1_roles_id",
renderer="json",
permission="Users",
trans=True,
)
def delete(request):
id_ = request.matchdict['id']
id_ = request.matchdict["id"]
if id_ is None:
response = Response("Role is Null")
response.status_int = 500
@ -51,22 +71,42 @@ def delete(request):
return response
@view_config(request_method='GET', route_name='v1_roles_id', renderer='json', permission='Authenticated')
@view_config(
request_method="GET",
route_name="v1_roles_id",
renderer="json",
permission="Authenticated",
)
def show_id(request):
id_ = uuid.UUID(request.matchdict['id'])
id_ = uuid.UUID(request.matchdict["id"])
return role_info(id_, request.dbsession)
@view_config(request_method='GET', route_name='v1_roles_new', renderer='json', permission='Authenticated')
@view_config(
request_method="GET",
route_name="v1_roles_new",
renderer="json",
permission="Authenticated",
)
def show_blank(request):
return role_info(None, request.dbsession)
@view_config(request_method='GET', route_name='v1_roles_list', renderer='json', permission='Authenticated')
@view_config(
request_method="GET",
route_name="v1_roles_list",
renderer="json",
permission="Authenticated",
)
def show_list(request):
list_ = request.dbsession.query(Role).order_by(Role.name).all()
return [
{'id': item.id, 'name': item.name, 'permissions': sorted(p.name for p in item.permissions)} for item in list_
{
"id": item.id,
"name": item.name,
"permissions": sorted(p.name for p in item.permissions),
}
for item in list_
]
@ -74,14 +114,22 @@ def role_info(item, dbsession):
permissions = dbsession.query(Permission).order_by(Permission.name).all()
if item is None:
return {
'name': '',
'permissions': [{'id': p.id, 'name': p.name, 'enabled': False} for p in permissions]
"name": "",
"permissions": [
{"id": p.id, "name": p.name, "enabled": False} for p in permissions
],
}
if type(item) is uuid.UUID:
item = dbsession.query(Role).filter(Role.id == item).first()
return {
'id': item.id,
'name': item.name,
'permissions': [{'id': p.id, 'name': p.name, 'enabled': True if p in item.permissions else False}
for p in permissions]
"id": item.id,
"name": item.name,
"permissions": [
{
"id": p.id,
"name": p.name,
"enabled": True if p in item.permissions else False,
}
for p in permissions
],
}

View File

@ -14,7 +14,7 @@ from barker.models.validation_exception import ValidationError
request_method="POST",
route_name="v1_section_printers_id",
renderer="json",
permission="Products",
permission="Section Printers",
trans=True,
)
def save(request):
@ -79,7 +79,7 @@ def save(request):
request_method="DELETE",
route_name="v1_section_printers_id",
renderer="json",
permission="Products",
permission="Section Printers",
trans=True,
)
def delete(request):