Пример #1
0
def auth(request):
    data = JSONParser().parse(request)
    try:
        username = data['username']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册姓名不能为空'), "9999",
                                    '注册姓名不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        password = data['password']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册密码不能为空'), "9999",
                                    '注册密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_name=username,
                                          user_password=password)
    except EnterpriseUser.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'), "0403",
                                    '用户不存在或用户密码不正确'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
Пример #2
0
    def process_request(self, request):
        if request.path.startswith(r'/container/api/v1/cloudbox/tms/'):  # 检测如果不是登录的话
            try:
                token = request.META.get('HTTP_AUTHORIZATION')
                log.info("request token %s" % token)
                conn = self.get_connection_from_pool()
                if token:
                    # try:
                    #     sess = Session.objects.get(pk=request.session.session_key)
                    #     sess_param = sess.get_decoded()
                    #     if sess_param[token] and (token in sess_param.keys()):
                    #         log.info('session is valid pass')
                    #     else:
                    #         log.info("session timeout or invalid session")
                    #         return JsonResponse(retcode(errcode("0401", "session timeout or invalid session"),
                    #                                     "0401", "session timeout or invalid session"),
                    #                             safe=True,
                    #                             status=status.HTTP_401_UNAUTHORIZED)
                    # except Session.DoesNotExist:
                    #     return JsonResponse(retcode(errcode("0401", "no authorized, session invalid"),
                    #                                 "0401", "no authorized, session invalid"),
                    #                         safe=True,
                    #                         status=status.HTTP_401_UNAUTHORIZED)
                    if conn.hexists(PERMISSION_GROUP_HASH, token):
                        group = conn.hget(PERMISSION_GROUP_HASH, token)
                        #admin level direct pass
                        if group == 'admin':
                            pass
                        #guest and operator should filter
                        else:
                            if conn.hexists(PERMISSION_URL_HASH, group):
                                url_list = conn.hget(PERMISSION_URL_HASH, group).split(',')
                                req_url = request.path
                                # print req_url
                                match_flag = False
                                for url_pattern in url_list:
                                    result = re.match(url_pattern, req_url)
                                    if result:
                                        match_flag = True
                                # 非法请求url直接返回
                                if not match_flag:
                                    return JsonResponse(retcode(errcode("0401", "no authorized"), "0401", "no authorized"), safe=True,
                                                        status=status.HTTP_401_UNAUTHORIZED)

                            else:
                                return JsonResponse(retcode(errcode("0401", "no authorized"), "0401", "no authorized"), safe=True,
                                                    status=status.HTTP_401_UNAUTHORIZED)
                    else:
                        return JsonResponse(retcode(errcode("0401", "no authorized"), "0401", "no authorized, token is null"), safe=True,
                                            status=status.HTTP_401_UNAUTHORIZED)
                else:
                    if request.path.startswith(r'/container/api/v1/cloudbox/tms/upload/'):
                        log.info("request without valid token bypass, if the request is upload api")
                    else:
                        log.info("request without valid token reject")
                        return JsonResponse(retcode(errcode("0401", "no authorized"), "0401", "令牌失效,请重新登录"), safe=True,
                                            status=status.HTTP_401_UNAUTHORIZED)
            except Exception:
                return JsonResponse(retcode(errcode("0401", "no authorized"), "0401", "no authorized exception"), safe=True,
                                    status=status.HTTP_401_UNAUTHORIZED)
Пример #3
0
def enterpriseuser_fuzzy_query(request):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    data = JSONParser().parse(request)
    # group_id -> group.name
    group_map = {}
    try:
        keyword = data['keyword']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '关键字为空'), "9999", '关键字为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业id为空'), "9999",
                                    '企业id为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_data = EnterpriseUser.objects.filter(
            Q(user_name__contains=keyword),
            enterprise_id=enterprise_id).order_by('register_time')
        for item in user_data:
            group_map[item.group.access_group_id] = item.group.group
        log.info("group_map= %s" % group_map)
        page = paginator.paginate_queryset(user_data, request)
        ser_ret = EnterpriseUserSerializer(page, many=True)
        ser_data_list = []
        for data in ser_ret.data:
            data['group'] = group_map[data['group']]
            ser_data_list.append(data)
    except Exception, e:
        log.error(repr(e))
Пример #4
0
def set_rent_fee_rate(request):
    data = JSONParser().parse(request)
    try:
        type_id = data['type_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '箱子类型不能为空'), "9999",
                                    '箱子类型不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        fee_per_hour = data['fee_per_hour']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '箱子租赁价格不能为空'), "9999",
                                    '箱子租赁价格不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        box_type_info = BoxTypeInfo.objects.get(id=type_id)
        box_type_info.price = float(fee_per_hour)
        box_type_info.save()
        ser_data = BoxTypeInfoSerializer(box_type_info)
    except BoxTypeInfo.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("9999", '修改云箱租赁价格失败'), "9999",
                                    '修改云箱租赁价格失败'),
                            safe=True,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #5
0
def box_bill_real_time_all_filter(request):
    ret_list = []
    current_time = datetime.datetime.now(tz=timezone)
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    data = JSONParser().parse(request)
    try:
        keyword = data['keyword']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '关键字为空'), "9999", '关键字为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    log.info("input keyword is %s" % keyword)
    log.debug("input keyword type is %s" % type(keyword))
    enterprise_id_list = EnterpriseInfo.objects.filter(
        Q(enterprise_name__contains=keyword))
    enterprise_id_list_ser = EnterpriseInfoSerializer(enterprise_id_list,
                                                      many=True)
    log.debug("enterprise_id_list is %s" % enterprise_id_list_ser.data)
    log.debug("current_time.year=%s, current_time.month=%s" %
              (current_time.year, current_time.month))
    try:
        for enterprise in enterprise_id_list:
            rentlease_list = RentLeaseInfo.objects.filter(
                user_id__enterprise__enterprise_id=enterprise.enterprise_id)
            # rentlease_list = rentlease_list_with_today.exclude(lease_end_time__year=current_time.year,
            #                                                    lease_end_time__month=current_time.month,
            #                                                    lease_end_time__day=current_time.day)
            if rentlease_list:
                on_num = 0
                off_num = 0
                fee = 0
                bill = {}
                for item in rentlease_list:
                    if item.rent_status == 0 and (not item.lease_end_time):
                        off_num = off_num + 1
                    if item.lease_end_time \
                        and (item.lease_end_time.year == current_time.year) \
                        and (item.lease_end_time.month == current_time.month):
                        on_num = on_num + 1
                        fee = fee + item.rent
                bill['on_num'] = on_num
                bill['off_num'] = off_num
                bill['fee'] = fee
                bill['enterprise_id'] = enterprise.enterprise_id
                bill['enterprise_name'] = enterprise.enterprise_name
                ret_list.append(bill)
            else:
                log.info("rentlease_list is null")
                continue
    except Exception, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0500", '云箱计费查询失败'), "0500",
                                    '云箱计费查询失败'),
                            safe=True,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #6
0
def enterprise_user_detail(request, user_id):
    try:
        user = EnterpriseUser.objects.get(user_id=user_id)
        ser_user = EnterpriseUserSerializer(user)
        ret = ser_user.data
        ret['group'] = user.group.group
    except EnterpriseUser.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", "查询用户信息失败"), "9999", "查询用户信息失败"), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ret, "0000", "Succ"), safe=True, status=status.HTTP_200_OK)
Пример #7
0
def group_detail(request, access_group_id):
    try:
        group = AccessGroup.objects.get(access_group_id=access_group_id)
        ser_group = AccessGroupSerializer(group)
    except EnterpriseUser.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", "查询用户信息失败"), "9999",
                                    "查询用户信息失败"),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ser_group.data, "0000", "Succ"),
                        safe=True,
                        status=status.HTTP_200_OK)
Пример #8
0
def enterpise_info_detail(request, enterprise_id):
    try:
        ret_enterpriseinfo = EnterpriseInfo.objects.get(
            enterprise_id=enterprise_id)
        ser_enterpriseinfo = EnterpriseInfoSerializer(ret_enterpriseinfo)
    except EnterpriseInfo.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", "查询企业信息失败"), "9999",
                                    "查询企业信息失败"),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ser_enterpriseinfo.data, "0000", "Succ"),
                        safe=True,
                        status=status.HTTP_200_OK)
Пример #9
0
def del_enterpise_info(request, enterprise_id):
    ret = {}
    try:
        EnterpriseInfo.objects.get(enterprise_id=enterprise_id).delete()
        ret['enterprise_id'] = enterprise_id
    except EnterpriseInfo.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", "删除企业信息失败"), "9999",
                                    "删除企业信息失败"),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ret, "0000", "Succ"),
                        safe=True,
                        status=status.HTTP_200_OK)
Пример #10
0
def list_enterprise_user(request, group):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    group_query_set = AccessGroup.objects.all()
    group_map = {}
    for item in group_query_set:
        group_map[item.access_group_id] = item.group
    try:
        if group == 'all':
            enterprise_user_ret = EnterpriseUser.objects.all().exclude(group__group='admin')
            page = paginator.paginate_queryset(enterprise_user_ret, request)
            enterprise_user_ser = EnterpriseUserSerializer(page, many=True)
            revised_enterprise_user_list = []
            for item in enterprise_user_ser.data:
                group_id = item['group']
                item['group'] = group_map[group_id]
                revised_enterprise_user_list.append(item)
        else:
            try:
                obj_group = AccessGroup.objects.get(group=group)
            except AccessGroup.DoesNotExist:
                return JsonResponse(retcode(errcode("9999", '企业用户群组不存在'), "9999", '企业用户群组不存在'), safe=True,
                                    status=status.HTTP_500_INTERNAL_SERVER_ERROR)
            enterprise_user_ret = EnterpriseUser.objects.filter(group=obj_group).order_by('-register_time')
            page = paginator.paginate_queryset(enterprise_user_ret, request)
            enterprise_user_ser = EnterpriseUserSerializer(page, many=True)
            revised_enterprise_user_list = []
            for item in enterprise_user_ser.data:
                group_id = item['group']
                item['group'] = group_map[group_id]
                revised_enterprise_user_list.append(item)

    except Exception, e:
        log.error(repr(e))
Пример #11
0
def box_type_info_list(request):
    try:
        box_type_info_list = BoxTypeInfo.objects.all().order_by('id')
        ser_data = BoxTypeInfoSerializer(box_type_info_list, many=True)
    except e:
        log.error(repr(e))
    return JsonResponse(retcode(ser_data.data, "0000", "Succ"),
                        safe=True,
                        status=status.HTTP_200_OK)
Пример #12
0
def change_password(request):
    data = JSONParser().parse(request)
    try:
        user_id = data['user_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '用户id不能为空'), "9999",
                                    '用户id不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        orig_password = data['orig_password']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '原密码不能为空'), "9999",
                                    '原密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        new_password = data['new_password']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '新密码不能为空'), "9999",
                                    '新密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        timestamp = data['timestamp']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '异常错误'), "9999", '异常错误'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_id=user_id)
        # check salt valid
        current_utc = int(time.time())
        if current_utc - timestamp > settings.SALT_DURATION:
            return JsonResponse(retcode(errcode("4031", '非法登陆未经授权'), "4031",
                                        '非法登陆未经授权'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
        m2 = hashlib.md5()
        m2.update(user.user_password_encrypt + str(timestamp))
        gen_password = m2.hexdigest()
        log.info(
            'origin_password=%s, gen_password=%s, user_password_encrypt=%s, timestamp=%s'
            % (orig_password, gen_password, user.user_password_encrypt,
               timestamp))
        if gen_password != orig_password:
            return JsonResponse(retcode(errcode("0403", '原始密码输入不正确'), "0403",
                                        '原始密码输入不正确'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
        else:
            user.user_password_encrypt = new_password
            user.save()
    except EnterpriseUser.DoesNotExist, e:
        log.error(e)
        return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'), "0403",
                                    '用户不存在或用户密码不正确'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
Пример #13
0
def add_enterprise_admin(request):
    ret = {}
    data = JSONParser().parse(request)
    try:
        user_name = data['user_name']
    except Exception:
        return JsonResponse(retcode({}, "9999", '注册姓名不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_password = data['user_password']
    except Exception:
        return JsonResponse(retcode({}, "9999", '注册密码不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_real_name = data['user_real_name']
    except Exception:
        return JsonResponse(retcode({}, "9999", '注册用户姓名不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_phone = data['user_phone']
    except Exception, e:
        user_phone = ''
        log.error(repr(e))
Пример #14
0
def enterprise_month_bill(request, enterprise_id):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    try:
        box_rent_fee_month_bill = BoxRentFeeByMonth.objects.filter(
            enterprise=enterprise_id).order_by('date')
    except BoxRentFeeByMonth.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0500", '查询企业计费报表失败'), "0500",
                                    '查询企业计费报表失败'),
                            safe=True,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #15
0
def enterpise_deposit_confirm(request):
    data = JSONParser().parse(request)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业id为空'), "9999",
                                    '企业id为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        ret_enterpriseinfo = EnterpriseInfo.objects.get(
            enterprise_id=enterprise_id)
        ser_enterpriseinfo = EnterpriseInfoSerializer(ret_enterpriseinfo)
        ret_enterpriseinfo.enterprise_deposit_status = 1
        ret_enterpriseinfo.save()
    except EnterpriseInfo.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", "查询企业信息失败"), "9999",
                                    "查询企业信息失败"),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ser_enterpriseinfo.data, "0000", "Succ"),
                        safe=False,
                        status=status.HTTP_200_OK)
Пример #16
0
def list_enterpise_info(request):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    try:
        enterprise_ret = EnterpriseInfo.objects.all().order_by(
            '-last_update_time')
        page = paginator.paginate_queryset(enterprise_ret, request)
        ret_ser = EnterpriseInfoSerializer(page, many=True)
    except Exception:
        return JsonResponse(retcode(errcode("9999", "查询企业信息列表失败"), "9999",
                                    "查询企业信息列表失败"),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return paginator.get_paginated_response(ret_ser.data)
Пример #17
0
def auth_user_logout(request):
    data = JSONParser().parse(request)
    try:
        user_id = data['user_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '用户id不能为空'), "9999",
                                    '用户id不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_id=user_id)
        conn = get_connection_from_pool()
        if conn.hexists(USER_ALIAS_ID_HASH, user.user_id):
            conn.hdel(USER_ALIAS_ID_HASH, user.user_id)
        # if user.user_alias_id:
        #     user.user_alias_id = ''
        user.save()
    except EnterpriseUser.DoesNotExist, e:
        log.error(e)
        return JsonResponse(retcode(errcode("0403", '登出用户不存在'), "0403",
                                    '登出用户不存在'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
Пример #18
0
def enterprise_fuzzy_query(request):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    data = JSONParser().parse(request)
    try:
        keyword = data['keyword']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '关键字为空'), "9999", '关键字为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    enterprise_data = EnterpriseInfo.objects.filter(
        Q(enterprise_name__contains=keyword)).order_by('register_time')
    page = paginator.paginate_queryset(enterprise_data, request)
    ser_ret = EnterpriseInfoSerializer(page, many=True)
    return paginator.get_paginated_response(ser_ret.data)
Пример #19
0
def auth_with_salt(request):
    data = JSONParser().parse(request)
    try:
        username = data['username']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册姓名不能为空'), "9999",
                                    '注册姓名不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        password = data['password']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册密码不能为空'), "9999",
                                    '注册密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        timestamp = data['timestamp']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '异常错误'), "9999", '异常错误'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_name=username)
        # check salt valid
        current_utc = int(time.time())
        if current_utc - timestamp > settings.SALT_DURATION:
            return JsonResponse(retcode(errcode("4031", '非法登陆未经授权'), "4031",
                                        '非法登陆未经授权'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
        m2 = hashlib.md5()
        m2.update(user.user_password_encrypt + str(timestamp))
        gen_password = m2.hexdigest()
        log.info("password=%s, gen_password=%s, timestamp=%s, username=%s" %
                 (password, gen_password, timestamp, username))
        if gen_password != password:
            return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'),
                                        "0403", '用户不存在或用户密码不正确'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
        log.info("login verify success, begin alias_id init")
        conn = get_connection_from_pool()
        conn.hset(USER_ALIAS_ID_HASH, user.user_id, uuid.uuid1().hex)
        # user.user_alias_id = uuid.uuid1().hex
        # user.save()
    except EnterpriseUser.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'), "0403",
                                    '用户不存在或用户密码不正确'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
Пример #20
0
def enterprise_month_bill_detail(request, enterprise_id, date):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    try:
        log.info("enterprise_id=%s, date=%s" % (enterprise_id, date))
        year = date.split('-')[0]
        month = int(date.split('-')[1])
        # if month <=0 or month >12:
        #     return JsonResponse(retcode(errcode("0400", '日期参数错误'), safe=True, status=status.HTTP_400_BAD_REQUEST)
        rent_info_list = RentLeaseInfo.objects.filter(
            user_id__enterprise__enterprise_id=enterprise_id,
            lease_end_time__year=year,
            lease_end_time__month=month).order_by('-lease_end_time')
    except Exception, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0500", '查询企业月报表明细错误'), "0500",
                                    '查询企业月报表明细错误'),
                            safe=True,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #21
0
def update_enterprise_user(request):
    ret = {}
    data = JSONParser().parse(request)
    try:
        avatar_url = data['avatar_url']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '修改头像url不能为空'), "9999", '修改头像url不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_real_name = data['user_real_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '修改姓名不能为空'), "9999", '修改姓名不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_gender = data['user_gender']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '修改用户性别不能为空'), "9999", '修改用户性别不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_nickname = data['user_nickname']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '修改用户性别不能为空'), "9999", '修改用户性别不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_phone = data['user_phone']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '用户号码不能为空'), "9999", '用户号码不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业信息id不能为空'), "9999", '企业信息id不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_id = data['user_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '修改用户id不能为空'), "9999", '修改用户id不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_email = data['user_email']
    except Exception, e:
        log.error(repr(e))
        user_email = ''
Пример #22
0
def admin_auth_with_salt(request):
    data = JSONParser().parse(request)
    try:
        username = data['username']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册姓名不能为空'), "9999",
                                    '注册姓名不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        password = data['password']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册密码不能为空'), "9999",
                                    '注册密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        timestamp = data['timestamp']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '异常错误'), "9999", '异常错误'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_name=username,
                                          group__group='admin')
        # check salt valid
        current_utc = int(time.time())
        if current_utc - timestamp > settings.SALT_DURATION:
            return JsonResponse(retcode(errcode("4031", '非法登陆未经授权'), "4031",
                                        '非法登陆未经授权'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
        m2 = hashlib.md5()
        m2.update(user.user_password_encrypt + str(timestamp))
        gen_password = m2.hexdigest()
        log.info("password=%s, gen_password=%s, timestamp=%s, username=%s" %
                 (password, gen_password, timestamp, username))
        if gen_password != password:
            return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'),
                                        "0403", '用户不存在或用户密码不正确'),
                                safe=True,
                                status=status.HTTP_403_FORBIDDEN)
    except EnterpriseUser.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'), "0403",
                                    '用户不存在或用户密码不正确'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
Пример #23
0
def box_bill_real_time_all(request):
    ret_list = []
    current_time = datetime.datetime.now(tz=timezone)
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    try:
        enterprise_query_list = EnterpriseInfo.objects.all()
        for enterprise in enterprise_query_list:
            rentlease_list = RentLeaseInfo.objects.filter(
                user_id__enterprise__enterprise_id=enterprise.enterprise_id)
            # rentlease_list = rentlease_list_with_today.exclude(lease_end_time__year=current_time.year,
            #                                                    lease_end_time__month=current_time.month,
            #                                                    lease_end_time__day=current_time.day)
            if rentlease_list:
                on_num = 0
                off_num = 0
                fee = 0
                bill = {}
                for item in rentlease_list:
                    if item.rent_status == 0 and (not item.lease_end_time):
                        off_num = off_num + 1
                    if item.lease_end_time \
                            and (item.lease_end_time.year == current_time.year) \
                            and (item.lease_end_time.month == current_time.month):
                        on_num = on_num + 1
                        fee = fee + item.rent
                bill['on_num'] = on_num
                bill['off_num'] = off_num
                bill['fee'] = fee
                bill['enterprise_id'] = enterprise.enterprise_id
                bill['enterprise_name'] = enterprise.enterprise_name
                ret_list.append(bill)
            else:
                continue
    except Exception, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0500", '云箱计费查询失败'), "0500",
                                    '云箱计费查询失败'),
                            safe=True,
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #24
0
def update_enterprise_admin(request):
    ret = {}
    data = JSONParser().parse(request)
    try:
        user_phone = data['user_phone']
    except Exception:
        return JsonResponse(retcode({}, "9999", '用户号码不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_email = data['user_email']
    except Exception:
        return JsonResponse(retcode({}, "9999", '用户邮件地址不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode({}, "9999", '企业信息id不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_id = data['user_id']
    except Exception:
        return JsonResponse(retcode({}, "9999", '修改用户id不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        role = data['role']
    except Exception:
        return JsonResponse(retcode({}, "9999", '修改用户角色不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        group = data['group']
    except Exception:
        return JsonResponse(retcode({}, "9999", '企业用户所属群组不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        avatar_url = data['avatar_url']
    except Exception:
        return JsonResponse(retcode({}, "9999", '头像url不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        user_gender = data['user_gender']
    except Exception, e:
        log.error(repr(e))
        user_gender = ''
Пример #25
0
        try:
            tmpfile_path = os.path.join('.', file_obj.name)
            if os.path.exists(tmpfile_path):
                q = Auth(self.access_key, self.secret_key)
                log.info("begin base64 filename")
                file_name_base64 = base64.b64encode(self.to_str(file_obj.name))
                log.info(
                    "filename=%s, filenametype=%s, base64filename=%s" %
                    (file_obj.name, type(file_obj.name), file_name_base64))
                key = "%s-%s" % (uuid.uuid1(), file_name_base64)
                token = q.upload_token(self.bucket_name, key, 3600)
                ret, info = put_file(token, key, tmpfile_path)
                if info.status_code == 200:
                    ret['url'] = "%s/%s" % (self.base_url, key)
                else:
                    ret['url'] = ""
                os.remove(tmpfile_path)
        except Exception, e:
            log.error(repr(e))
            ret['error'] = e
            os.remove(tmpfile_path)
            return Response(data=errcode('0500', ret), status=500)
        return Response(data=retcode(ret, "0000", "Succ"), status=200)

    def to_str(self, str_or_unicode):
        if isinstance(str_or_unicode, unicode):
            value = str_or_unicode.encode('utf-8')
        else:
            value = str_or_unicode
        return value
Пример #26
0
     log.error(repr(e))
     avatar_url = ''
 try:
     user_gender = data['user_gender']
 except Exception, e:
     log.error(repr(e))
     user_gender = ''
 try:
     user_nickname = data['user_nickname']
 except Exception, e:
     log.error(repr(e))
     user_nickname = ''
 try:
     enterprise_id = data['enterprise_id']
 except Exception:
     return JsonResponse(retcode({}, "9999", '企业信息id不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
 try:
     role = data['role']
 except Exception:
     return JsonResponse(retcode({}, "9999", '企业用户角色不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
 try:
     group = data['group']
 except Exception:
     return JsonResponse(retcode({}, "9999", '企业用户所属群组不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
 log.info("add enterprise user input data = %s" % data)
 try:
     try:
         enterprise = EnterpriseInfo.objects.get(enterprise_id=enterprise_id)
     except EnterpriseUser.DoesNotExist:
         return JsonResponse(retcode({}, "9999", '企业信息id不存在'), safe=True,
                             status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #27
0
def add_enterprise_user(request):
    ret = {}
    data = JSONParser().parse(request)
    try:
        user_name = data['user_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册登陆名不能为空'), "9999", '注册登陆名不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_real_name = data['user_real_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册用户姓名不能为空'), "9999", '注册用户姓名不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_gender = data['user_gender']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '注册用户性别不能为空'), "9999", '注册用户性别不能为空'), safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user_phone = data['user_phone']
    except Exception:
        return JsonResponse(retcode({}, "9999", '注册用户号码不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode({}, "9999", '企业信息id不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        role = data['role']
    except Exception:
        return JsonResponse(retcode({}, "9999", '企业用户角色不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        group = data['group']
    except Exception:
        return JsonResponse(retcode({}, "9999", '企业用户所属群组不能为空'), safe=True, status=status.HTTP_400_BAD_REQUEST)
    try:
        try:
            enterprise = EnterpriseInfo.objects.get(enterprise_id=enterprise_id)
        except EnterpriseUser.DoesNotExist:
            return JsonResponse(retcode({}, "9999", '企业信息id不存在'), safe=True,
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        try:
            group_obj = AccessGroup.objects.get(group=group)
        except AccessGroup.DoesNotExist:
            return JsonResponse(retcode({}, "9999", '企业用户群组不存在'), safe=True,
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        try:
            usr = EnterpriseUser.objects.get(user_name=user_name)
            if usr:
                log.error("Enterprise User exists already and return 500 error")
                return JsonResponse(retcode({}, "0500", '登陆名已存在'), safe=True,
                                    status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        except EnterpriseUser.DoesNotExist:
                with transaction.atomic():
                    md = hashlib.md5()
                    md.update('hna12345')
                    md5_pwd = md.hexdigest()
                    new_user = EnterpriseUser(user_id=uuid.uuid1(), user_name=user_name, user_password='******',
                                              status='', avatar_url='', user_phone=user_phone,
                                              user_email='', register_time=datetime.datetime.now(tz=tz),
                                              enterprise=enterprise, user_token=uuid.uuid4().hex, role=role,
                                              group=group_obj, user_real_name=user_real_name, user_gender=user_gender,
                                              user_alias_id=uuid.uuid1().hex, user_password_encrypt=md5_pwd)
                    new_user.save()
                    auth_user_group = AuthUserGroup(user_token=new_user.user_token, group=group_obj)
                    auth_user_group.save()
                ret['user_id'] = new_user.user_id
                update_redis_token(new_user.user_token, group)
    except Exception, e:
        log.error(repr(e))
        return JsonResponse(retcode({}, "0500", '创建用户失败'), safe=True, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Пример #28
0
def update_enterprise_info(request):
    data = JSONParser().parse(request)
    try:
        enterprise_id = data['enterprise_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业id为空'), "9999",
                                    '企业id为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_name = data['enterprise_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业名称不能为空'), "9999",
                                    '企业名称不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_tele = data['enterprise_tele']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业联系电话不能为空'), "9999",
                                    '企业联系电话不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_license_id = data['enterprise_license_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业营业执照序号不能为空'), "9999",
                                    '企业营业执照序号不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_legal_rep_name = data['enterprise_legal_rep_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业法人名称不能为空'), "9999",
                                    '企业法人名称不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_deposit = data['enterprise_deposit']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业保证金不能为空'), "9999",
                                    '企业保证金不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_email = data['enterprise_email']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业邮箱不能为空'), "9999",
                                    '企业邮箱不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_license_id_url = data['enterprise_license_id_url']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业营业执照照片url不能为空'), "9999",
                                    '企业营业执照照片url不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_homepage_url = data['enterprise_homepage_url']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业网址不能为空'), "9999",
                                    '企业网址不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_address = data['enterprise_address']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业地址不能为空'), "9999",
                                    '企业地址不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    ret = {}
    ret['enterprise_id'] = enterprise_id
    try:
        enterprise_edit = EnterpriseInfo.objects.get(
            enterprise_id=enterprise_id)
        enterprise_edit.enterprise_name = enterprise_name
        enterprise_edit.enterprise_tele = enterprise_tele
        enterprise_edit.enterprise_license_id = enterprise_license_id
        enterprise_edit.enterprise_license_id_url = enterprise_license_id_url
        enterprise_edit.enterprise_legal_rep_name = enterprise_legal_rep_name
        enterprise_edit.enterprise_email = enterprise_email
        enterprise_edit.enterprise_deposit = enterprise_deposit
        enterprise_edit.last_update_time = datetime.datetime.now(tz)
        enterprise_edit.enterprise_homepage_url = enterprise_homepage_url
        enterprise_edit.enterprise_address = enterprise_address
        enterprise_edit.save()
    except EnterpriseInfo.DoesNotExist:
        return JsonResponse(retcode(errcode("9999", '请求修改的企业信息不存在'), "9999",
                                    '请求修改的企业信息不存在'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    return JsonResponse(retcode(ret, "0000", 'Succ'),
                        safe=True,
                        status=status.HTTP_200_OK)
Пример #29
0
                                    '注册密码不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        user = EnterpriseUser.objects.get(user_name=username,
                                          user_password=password)
    except EnterpriseUser.DoesNotExist, e:
        log.error(repr(e))
        return JsonResponse(retcode(errcode("0403", '用户不存在或用户密码不正确'), "0403",
                                    '用户不存在或用户密码不正确'),
                            safe=True,
                            status=status.HTTP_403_FORBIDDEN)
    ser_user = EnterpriseUserSerializer(user)
    ret = ser_user.data
    ret['group'] = user.group.group
    return JsonResponse(retcode(ret, "0000", "Succ"),
                        safe=True,
                        status=status.HTTP_200_OK)


@csrf_exempt
@api_view(['GET'])
def list_group(request):
    pagination_class = api_settings.DEFAULT_PAGINATION_CLASS
    paginator = pagination_class()
    try:
        access_group_ret = AccessGroup.objects.all()
        page = paginator.paginate_queryset(access_group_ret, request)
        access_group_ser = AccessGroupSerializer(page, many=True)
    except Exception, e:
        log.error(repr(e))
Пример #30
0
def add_enterprise_info(request):
    data = JSONParser().parse(request)
    try:
        enterprise_name = data['enterprise_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业名称不能为空'), "9999",
                                    '企业名称不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_tele = data['enterprise_tele']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业联系电话不能为空'), "9999",
                                    '企业联系电话不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_license_id = data['enterprise_license_id']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业营业执照序号不能为空'), "9999",
                                    '企业营业执照序号不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_legal_rep_name = data['enterprise_legal_rep_name']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业法人名称不能为空'), "9999",
                                    '企业法人名称不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_deposit = data['enterprise_deposit']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业保证金不能为空'), "9999",
                                    '企业保证金不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_email = data['enterprise_email']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业邮箱不能为空'), "9999",
                                    '企业邮箱不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_license_id_url = data['enterprise_license_id_url']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业营业执照照片url不能为空'), "9999",
                                    '企业营业执照照片url不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_homepage_url = data['enterprise_homepage_url']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业网址不能为空'), "9999",
                                    '企业网址不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_address = data['enterprise_address']
    except Exception:
        return JsonResponse(retcode(errcode("9999", '企业地址不能为空'), "9999",
                                    '企业地址不能为空'),
                            safe=True,
                            status=status.HTTP_400_BAD_REQUEST)
    try:
        enterprise_info = EnterpriseInfo(
            enterprise_id=uuid.uuid1(),
            enterprise_name=enterprise_name,
            enterprise_tele=enterprise_tele,
            enterprise_license_id=enterprise_license_id,
            enterprise_license_id_url=enterprise_license_id_url,
            enterprise_legal_rep_name=enterprise_legal_rep_name,
            enterprise_email=enterprise_email,
            enterprise_deposit=enterprise_deposit,
            enterprise_deposit_status=0,
            register_time=datetime.datetime.now(tz),
            last_update_time=datetime.datetime.now(tz),
            enterprise_homepage_url=enterprise_homepage_url,
            enterprise_address=enterprise_address)
        enterprise_info.save()
    except Exception, e:
        log.error(repr(e))