def post(self, request, *args, **kwargs): """ """ try: username = request.data.get("username", None) enterprise_id = request.data.get("enterprise_id", None) enterprise_alias = request.data.get("enterprise_alias", None) # 校验参数 if not username or not enterprise_id or not enterprise_alias: return Response(generate_result( "1003", "params error", "参数错误")) user_obj = user_repo.get_user_by_user_name(username) if not user_obj: return Response(generate_result( "1004", "user already exists", "用户在控制台不存在")) # 查询企业信息 enterprise = enterprise_services.get_enterprise_by_enterprise_id(enterprise_id) # 判断用户是否为企业管理员 if user_services.is_user_admin_in_current_enterprise(user_obj, enterprise.enterprise_id): bean_dict = {"user_info": user_obj.to_dict()} return Response(generate_result("0000", "success", "当前用户已经是企业管理员,已同步至管理后台", bean_dict)) # 添加企业管理员 enterprise_user_perm_repo.create_enterprise_user_perm(user_obj.user_id, enterprise.enterprise_id, "admin") bean = {"user_info": user_obj.to_dict()} result = generate_result("0000", "success", "添加成功", bean=bean) except Exception as e: logger.exception(e) result = generate_error_result() return Response(result)
def make_user_as_admin_for_enterprise(self, user_id, enterprise_id): user_perm = enterprise_user_perm_repo.get_user_enterprise_perm( user_id, enterprise_id) if not user_perm: return enterprise_user_perm_repo.create_enterprise_user_perm( user_id, enterprise_id, "admin") return user_perm
def create_admin_user(self, user, ent, roles): # 判断用户是否为企业管理员 if user_services.is_user_admin_in_current_enterprise(user, ent.enterprise_id): return # 添加企业管理员 token = self.generate_key() return enterprise_user_perm_repo.create_enterprise_user_perm(user.user_id, ent.enterprise_id, ",".join(roles), token)
def is_user_admin_in_current_enterprise(self, current_user, enterprise_id): """判断用户在该企业下是否为管理员""" if current_user.enterprise_id != enterprise_id: return False is_admin = enterprise_user_perm_repo.is_admin(enterprise_id, current_user.user_id) if is_admin: return True users = user_repo.get_enterprise_users(enterprise_id).order_by("user_id") if users: admin_user = users[0] # 如果有,判断用户最开始注册的用户和当前用户是否为同一人,如果是,添加数据返回true if admin_user.user_id == current_user.user_id: token = self.generate_key() enterprise_user_perm_repo.create_enterprise_user_perm(current_user.user_id, enterprise_id, "admin", token) return True return False
def is_user_admin_in_current_enterprise(self, current_user, enterprise_id): """判断用户在该企业下是否为管理员""" if current_user.enterprise_id != enterprise_id: return False user_perms = enterprise_user_perm_repo.get_user_enterprise_perm(current_user.user_id, enterprise_id) if not user_perms: users = user_repo.get_enterprise_users(enterprise_id).order_by("user_id") if users: admin_user = users[0] # 如果有,判断用户最开始注册的用户和当前用户是否为同一人,如果是,添加数据返回true if admin_user.user_id == current_user.user_id: enterprise_user_perm_repo.create_enterprise_user_perm(current_user.user_id, enterprise_id, "admin") return True else: return False else: return True
def make_user_as_admin_for_enterprise(self, user_id, enterprise_id): user_perm = enterprise_user_perm_repo.get_user_enterprise_perm( user_id, enterprise_id) if not user_perm: token = self.generate_key() return enterprise_user_perm_repo.create_enterprise_user_perm( user_id, enterprise_id, "admin", token) return user_perm
def create_admin_user(self, user, ent, roles): try: enterprise_user_perm_repo.get(ent.enterprise_id, user.user_id) return enterprise_user_perm_repo.update_roles(ent.enterprise_id, user.user_id, ",".join(roles)) except EnterpriseUserPerm.DoesNotExist: token = self.generate_key() return enterprise_user_perm_repo.create_enterprise_user_perm(user.user_id, ent.enterprise_id, ",".join(roles), token)