我有两个模型,Role和RoleMember,以及一条返回我一些用户详细信息的路由,在这些详细信息中,我有uid
可以用来检查表数据上是否存在。
角色具有id
,name
和description
。
RoleMember具有id
,user_uid
和role
作为外键。
我需要检查用户是否具有角色并返回这些角色名称
我试图提出代码,但是我在return语句中得到了所有角色名称。
我有一条路由,从用户那里返回user_details,我使用从路由中获得的uid
来检查uid
行上是否存在user_uid
,然后返回一个该查询应赋予我与RoleMember外键匹配的角色name
@app.route('/user/<cn>', methods=['GET'])
def user_details(cn):
user_details = ldap.get_object_details(cn, query_filter="cn=%s")
if user_details is None:
response = jsonify(message='User Not Found')
return response, 404
for k, v in user_details.items():
user_details[k] = v[0].decode('utf-8')
users_uids = db.session.query(RoleMember.user_uid).all()
role_name = db.session.query(Role.name).join(RoleMember, RoleMember.role == Role.id).all()
if user_details['uid'] in str(users_uids):
return str(role_name)
else:
return jsonify("User has no roles")