Beispiel #1
0
 def get_user_by_eid(self, eid, name, page, page_size):
     users = user_repo.get_enterprise_users(eid)
     if name:
         users = users.filter(
             Q(nick_name__contains=name) | Q(real_name__contains=name))
     total = users.count()
     return users[(page - 1) * page_size:page * page_size], total
 def list_all(self, query="", page=None, page_size=None):
     ents = enterprise_repo.list_all(query)
     total = ents.count()
     if total == 0:
         return [], 0
     paginator = Paginator(ents, page_size)
     pp = paginator.page(page)
     data = []
     for ent in pp:
         data.append({
             "enterprise_id":
             ent.enterprise_id,
             "enterprise_name":
             ent.enterprise_name,
             "enterprise_alias":
             ent.enterprise_alias,
             "create_time":
             ent.create_time,
             "is_active":
             ent.is_active,
             "region_num":
             region_repo.get_regions_by_enterprise_id(
                 ent.enterprise_id).count(),
             "user_num":
             user_repo.get_enterprise_users(ent.enterprise_id).count(),
             "team_num":
             team_repo.get_team_by_enterprise_id(ent.enterprise_id).count()
         })
     return data, total
 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
Beispiel #5
0
    def post(self, request, *args, **kwargs):
        """
        back manager get access token for console
        ---
        parameters:
            - name: username
              description: 用户名
              required: true
              type: string
              paramType: path
            - name: password
              description: 密码
              required: true
              type: string
              paramType: form
            - name: enterprise_id
              description: 企业ID
              required: true
              type: string
              paramType: form
            - name: enterprise_alias
              description: 企业别名
              required: true
              type: string
              paramType: form
        """
        try:
            auth = request.data.get('Authorization', '')
            if auth != settings.MANAGE_SECRET_KEY:
                return Response(
                    generate_result("0401", "authorization error", "验证未通过"))

            enterprise_alias = request.data.get("enterprise_alias", None)
            # 校验参数
            if not enterprise_alias:
                return Response(generate_result("1003", "params error",
                                                "参数错误"))
            # 查询企业信息

            enterprise = enterprise_services.get_enterprise_by_enterprise_alias(
                enterprise_alias)
            logger.debug('----------type----------->{0}'.format(
                type(enterprise)))

            if not enterprise:
                return Response(
                    generate_result("1005", "enterprise already exists",
                                    "当前企业在控制台不存在"))
            # 获取企业第一个用户(即企业管理员)
            users = user_repo.get_enterprise_users(
                enterprise.enterprise_id).order_by("user_id")
            if not users:
                return Response(
                    generate_result("1007", "is not enterprise admin",
                                    "无企业管理员"))
            admin_user = users[0]
            token = auth_service.create_token_auth_user(
                admin_user.nick_name, admin_user.password)
            bean = {
                "console_access_token": token.key,
                "enterprise_info": enterprise.to_dict(),
                "user_info": admin_user.to_dict()
            }

            result = generate_result("0000", "success", "信息获取成功", bean=bean)

        except Exception as e:
            logger.exception(e)
            result = generate_error_result()
        return Response(result)
Beispiel #6
0
 def get_enterprise_first_user(self, enterprise_id):
     users = user_repo.get_enterprise_users(enterprise_id).order_by(
         "user_id")
     if users:
         return users[0]
     return None