Black lint all the things
This commit is contained in:
@@ -14,26 +14,42 @@ from sqlalchemy import Boolean, Column, Integer, String, Text, ForeignKey
|
||||
|
||||
from lemur.database import db
|
||||
from lemur.utils import Vault
|
||||
from lemur.models import roles_users, roles_authorities, roles_certificates, \
|
||||
pending_cert_role_associations
|
||||
from lemur.models import (
|
||||
roles_users,
|
||||
roles_authorities,
|
||||
roles_certificates,
|
||||
pending_cert_role_associations,
|
||||
)
|
||||
|
||||
|
||||
class Role(db.Model):
|
||||
__tablename__ = 'roles'
|
||||
__tablename__ = "roles"
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(String(128), unique=True)
|
||||
username = Column(String(128))
|
||||
password = Column(Vault)
|
||||
description = Column(Text)
|
||||
authority_id = Column(Integer, ForeignKey('authorities.id'))
|
||||
authorities = relationship("Authority", secondary=roles_authorities, passive_deletes=True, backref="role", cascade='all,delete')
|
||||
user_id = Column(Integer, ForeignKey('users.id'))
|
||||
authority_id = Column(Integer, ForeignKey("authorities.id"))
|
||||
authorities = relationship(
|
||||
"Authority",
|
||||
secondary=roles_authorities,
|
||||
passive_deletes=True,
|
||||
backref="role",
|
||||
cascade="all,delete",
|
||||
)
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
third_party = Column(Boolean)
|
||||
users = relationship("User", secondary=roles_users, passive_deletes=True, backref="role")
|
||||
certificates = relationship("Certificate", secondary=roles_certificates, backref="role")
|
||||
pending_certificates = relationship("PendingCertificate", secondary=pending_cert_role_associations, backref="role")
|
||||
users = relationship(
|
||||
"User", secondary=roles_users, passive_deletes=True, backref="role"
|
||||
)
|
||||
certificates = relationship(
|
||||
"Certificate", secondary=roles_certificates, backref="role"
|
||||
)
|
||||
pending_certificates = relationship(
|
||||
"PendingCertificate", secondary=pending_cert_role_associations, backref="role"
|
||||
)
|
||||
|
||||
sensitive_fields = ('password',)
|
||||
sensitive_fields = ("password",)
|
||||
|
||||
def __repr__(self):
|
||||
return "Role(name={name})".format(name=self.name)
|
||||
|
@@ -47,7 +47,9 @@ def set_third_party(role_id, third_party_status=False):
|
||||
return role
|
||||
|
||||
|
||||
def create(name, password=None, description=None, username=None, users=None, third_party=False):
|
||||
def create(
|
||||
name, password=None, description=None, username=None, users=None, third_party=False
|
||||
):
|
||||
"""
|
||||
Create a new role
|
||||
|
||||
@@ -58,7 +60,13 @@ def create(name, password=None, description=None, username=None, users=None, thi
|
||||
:param password:
|
||||
:return:
|
||||
"""
|
||||
role = Role(name=name, description=description, username=username, password=password, third_party=third_party)
|
||||
role = Role(
|
||||
name=name,
|
||||
description=description,
|
||||
username=username,
|
||||
password=password,
|
||||
third_party=third_party,
|
||||
)
|
||||
|
||||
if users:
|
||||
role.users = users
|
||||
@@ -83,7 +91,7 @@ def get_by_name(role_name):
|
||||
:param role_name:
|
||||
:return:
|
||||
"""
|
||||
return database.get(Role, role_name, field='name')
|
||||
return database.get(Role, role_name, field="name")
|
||||
|
||||
|
||||
def delete(role_id):
|
||||
@@ -105,9 +113,9 @@ def render(args):
|
||||
:return:
|
||||
"""
|
||||
query = database.session_query(Role)
|
||||
filt = args.pop('filter')
|
||||
user_id = args.pop('user_id', None)
|
||||
authority_id = args.pop('authority_id', None)
|
||||
filt = args.pop("filter")
|
||||
user_id = args.pop("user_id", None)
|
||||
authority_id = args.pop("authority_id", None)
|
||||
|
||||
if user_id:
|
||||
query = query.filter(Role.users.any(User.id == user_id))
|
||||
@@ -116,7 +124,7 @@ def render(args):
|
||||
query = query.filter(Role.authority_id == authority_id)
|
||||
|
||||
if filt:
|
||||
terms = filt.split(';')
|
||||
terms = filt.split(";")
|
||||
query = database.filter(query, Role, terms)
|
||||
|
||||
return database.sort_and_page(query, Role, args)
|
||||
|
@@ -17,15 +17,20 @@ from lemur.auth.permissions import RoleMemberPermission, admin_permission
|
||||
from lemur.common.utils import paginated_parser
|
||||
|
||||
from lemur.common.schema import validate_schema
|
||||
from lemur.roles.schemas import role_input_schema, role_output_schema, roles_output_schema
|
||||
from lemur.roles.schemas import (
|
||||
role_input_schema,
|
||||
role_output_schema,
|
||||
roles_output_schema,
|
||||
)
|
||||
|
||||
|
||||
mod = Blueprint('roles', __name__)
|
||||
mod = Blueprint("roles", __name__)
|
||||
api = Api(mod)
|
||||
|
||||
|
||||
class RolesList(AuthenticatedResource):
|
||||
""" Defines the 'roles' endpoint """
|
||||
|
||||
def __init__(self):
|
||||
self.reqparse = reqparse.RequestParser()
|
||||
super(RolesList, self).__init__()
|
||||
@@ -79,11 +84,11 @@ class RolesList(AuthenticatedResource):
|
||||
:statuscode 403: unauthenticated
|
||||
"""
|
||||
parser = paginated_parser.copy()
|
||||
parser.add_argument('owner', type=str, location='args')
|
||||
parser.add_argument('id', type=str, location='args')
|
||||
parser.add_argument("owner", type=str, location="args")
|
||||
parser.add_argument("id", type=str, location="args")
|
||||
|
||||
args = parser.parse_args()
|
||||
args['user'] = g.current_user
|
||||
args["user"] = g.current_user
|
||||
return service.render(args)
|
||||
|
||||
@admin_permission.require(http_exception=403)
|
||||
@@ -135,8 +140,13 @@ class RolesList(AuthenticatedResource):
|
||||
:statuscode 200: no error
|
||||
:statuscode 403: unauthenticated
|
||||
"""
|
||||
return service.create(data['name'], data.get('password'), data.get('description'), data.get('username'),
|
||||
data.get('users'))
|
||||
return service.create(
|
||||
data["name"],
|
||||
data.get("password"),
|
||||
data.get("description"),
|
||||
data.get("username"),
|
||||
data.get("users"),
|
||||
)
|
||||
|
||||
|
||||
class RoleViewCredentials(AuthenticatedResource):
|
||||
@@ -177,11 +187,18 @@ class RoleViewCredentials(AuthenticatedResource):
|
||||
permission = RoleMemberPermission(role_id)
|
||||
if permission.can():
|
||||
role = service.get(role_id)
|
||||
response = make_response(jsonify(username=role.username, password=role.password), 200)
|
||||
response.headers['cache-control'] = 'private, max-age=0, no-cache, no-store'
|
||||
response.headers['pragma'] = 'no-cache'
|
||||
response = make_response(
|
||||
jsonify(username=role.username, password=role.password), 200
|
||||
)
|
||||
response.headers["cache-control"] = "private, max-age=0, no-cache, no-store"
|
||||
response.headers["pragma"] = "no-cache"
|
||||
return response
|
||||
return dict(message='You are not authorized to view the credentials for this role.'), 403
|
||||
return (
|
||||
dict(
|
||||
message="You are not authorized to view the credentials for this role."
|
||||
),
|
||||
403,
|
||||
)
|
||||
|
||||
|
||||
class Roles(AuthenticatedResource):
|
||||
@@ -227,7 +244,12 @@ class Roles(AuthenticatedResource):
|
||||
if permission.can():
|
||||
return service.get(role_id)
|
||||
|
||||
return dict(message="You are not allowed to view a role which you are not a member of."), 403
|
||||
return (
|
||||
dict(
|
||||
message="You are not allowed to view a role which you are not a member of."
|
||||
),
|
||||
403,
|
||||
)
|
||||
|
||||
@validate_schema(role_input_schema, role_output_schema)
|
||||
def put(self, role_id, data=None):
|
||||
@@ -269,8 +291,10 @@ class Roles(AuthenticatedResource):
|
||||
"""
|
||||
permission = RoleMemberPermission(role_id)
|
||||
if permission.can():
|
||||
return service.update(role_id, data['name'], data.get('description'), data.get('users'))
|
||||
return dict(message='You are not authorized to modify this role.'), 403
|
||||
return service.update(
|
||||
role_id, data["name"], data.get("description"), data.get("users")
|
||||
)
|
||||
return dict(message="You are not authorized to modify this role."), 403
|
||||
|
||||
@admin_permission.require(http_exception=403)
|
||||
def delete(self, role_id):
|
||||
@@ -304,11 +328,12 @@ class Roles(AuthenticatedResource):
|
||||
:statuscode 403: unauthenticated
|
||||
"""
|
||||
service.delete(role_id)
|
||||
return {'message': 'ok'}
|
||||
return {"message": "ok"}
|
||||
|
||||
|
||||
class UserRolesList(AuthenticatedResource):
|
||||
""" Defines the 'roles' endpoint """
|
||||
|
||||
def __init__(self):
|
||||
self.reqparse = reqparse.RequestParser()
|
||||
super(UserRolesList, self).__init__()
|
||||
@@ -362,12 +387,13 @@ class UserRolesList(AuthenticatedResource):
|
||||
"""
|
||||
parser = paginated_parser.copy()
|
||||
args = parser.parse_args()
|
||||
args['user_id'] = user_id
|
||||
args["user_id"] = user_id
|
||||
return service.render(args)
|
||||
|
||||
|
||||
class AuthorityRolesList(AuthenticatedResource):
|
||||
""" Defines the 'roles' endpoint """
|
||||
|
||||
def __init__(self):
|
||||
self.reqparse = reqparse.RequestParser()
|
||||
super(AuthorityRolesList, self).__init__()
|
||||
@@ -421,12 +447,18 @@ class AuthorityRolesList(AuthenticatedResource):
|
||||
"""
|
||||
parser = paginated_parser.copy()
|
||||
args = parser.parse_args()
|
||||
args['authority_id'] = authority_id
|
||||
args["authority_id"] = authority_id
|
||||
return service.render(args)
|
||||
|
||||
|
||||
api.add_resource(RolesList, '/roles', endpoint='roles')
|
||||
api.add_resource(Roles, '/roles/<int:role_id>', endpoint='role')
|
||||
api.add_resource(RoleViewCredentials, '/roles/<int:role_id>/credentials', endpoint='roleCredentials`')
|
||||
api.add_resource(AuthorityRolesList, '/authorities/<int:authority_id>/roles', endpoint='authorityRoles')
|
||||
api.add_resource(UserRolesList, '/users/<int:user_id>/roles', endpoint='userRoles')
|
||||
api.add_resource(RolesList, "/roles", endpoint="roles")
|
||||
api.add_resource(Roles, "/roles/<int:role_id>", endpoint="role")
|
||||
api.add_resource(
|
||||
RoleViewCredentials, "/roles/<int:role_id>/credentials", endpoint="roleCredentials`"
|
||||
)
|
||||
api.add_resource(
|
||||
AuthorityRolesList,
|
||||
"/authorities/<int:authority_id>/roles",
|
||||
endpoint="authorityRoles",
|
||||
)
|
||||
api.add_resource(UserRolesList, "/users/<int:user_id>/roles", endpoint="userRoles")
|
||||
|
Reference in New Issue
Block a user