Beispiel #1
0
    def post(self, request, team):
        """设置团队的头像"""

        if request.user != team.owner:
            abort(403, '只有队长可以操作')

        icon = request.FILES.get('image')
        if not icon:
            abort(400, '头像上传失败')

        filename = save_uploaded_image(icon)
        if filename:
            team.icon = filename
            team.save()
            return JsonResponse({'icon_url': team.icon})
        abort(500, '头像保存失败')
Beispiel #2
0
    def post(self, request):
        """上传用户头像"""

        icon = request.FILES.get('image')
        if not icon:
            abort(400, '头像上传失败')

        filename = save_uploaded_image(icon)
        if filename:
            if not request.user.icon:
                request.user.score += get_score_stage(3)
                request.user.score_records.create(score=get_score_stage(3),
                                                  type="初始数据",
                                                  description="首次上传头像")
            request.user.icon = filename
            request.user.save()
            return JsonResponse({'icon_url': request.user.icon})
        abort(500, '头像保存失败')
Beispiel #3
0
    def post(self, request, team, name, description, tags):
        """发布成果

        :param description: 成果描述
        :return: achievement_id: 成果id
        """
        if request.user != team.owner:
            abort(403, '只有队长可以操作')

        if check_bad_words(description):
            abort(400, '含有非法词汇')

        achievement_num = team.achievements.count()
        if achievement_num == 0:
            team.score += get_score_stage(2)
            team.score_records.create(score=get_score_stage(2),
                                      type="初始数据",
                                      description="首次发布团队成果")

        achievement = Achievement(team=team,
                                  name=name,
                                  description=description,
                                  user=request.user,
                                  tags=tags)
        picture = request.FILES.get('image')
        if picture:
            filename = save_uploaded_image(picture)
            if filename:
                achievement.picture = filename
        else:
            abort(400, '图片上传失败')
        achievement.save()

        request.user.score += get_score_stage(1)
        request.user.score_records.create(score=get_score_stage(1),
                                          type="能力",
                                          description="发布一个团队成果")
        request.user.save()
        team.score += get_score_stage(1)
        team.score_records.create(score=get_score_stage(1),
                                  type="活跃度",
                                  description="发布一个团队成果")
        team.save()
        return JsonResponse({'achievement_id': achievement.id, 'code': 0})
Beispiel #4
0
    def post(self, request, name, description, tags):
        """发布成果

        :param description: 成果描述
        :return: achievement_id: 成果id
        """
        # 检查非法词汇
        if check_bad_words(description):
            abort(400, '含有非法词汇')
        system_param = request.param
        # 检查发布的时间间隔
        last_time = datetime.datetime.now() + datetime.timedelta(
            minutes=system_param.publish_min_minute)
        if Achievement.objects.filter(user=request.user,
                                      time_created__gt=last_time).count() > 0:
            abort(
                403,
                '发布成果时间间隔不能小于{}分钟'.format_map(system_param.publish_min_minute))
        # 检查上传图片数量
        max_pic = system_param.pic_max + 1
        if 'image' + str(max_pic) in request.FILES:
            abort(403, '最多上传' + str(system_param.pic_max) + '张图片')
        pics = [
            request.FILES.get('image' + str(i)) if 'image' +
            str(i) in request.FILES else None for i in range(1, max_pic)
        ]
        achievement = Achievement(user=request.user,
                                  description=description,
                                  name=name,
                                  tags=tags)
        if len(pics) != 0:
            filenames = []
            for p in pics:
                if p is None:
                    continue
                filenames.append(save_uploaded_image(p))
            achievement.picture = str(filenames)
        else:
            abort(500, '图片上传失败')
        achievement.save()

        return JsonResponse({'achievement_id': achievement.id, 'code': 0})
Beispiel #5
0
    def post(self, request):
        """上传用户头像"""

        icon = request.FILES.get('image')
        if not icon:
            HttpResponseForbidden()

        filename = save_uploaded_image(icon)
        if filename:
            request.user.icon = filename
            request.user.save()

            template = loader.get_template("admin_user/info.html")
            context = Context({
                'u': request.user,
                'msg': '上传成功',
                'user': request.user
            })
            return HttpResponse(template.render(context))
        HttpResponseForbidden()
Beispiel #6
0
    def post(self, request):
        """上传其他证件照片"""
        checkIdVerified(request.user)

        if request.user.is_role_verified:
            abort(403, '已经通过认证')

        other_card = request.FILES.get('image')
        if not other_card:
            abort(400, '图片上传失败')

        filename = save_uploaded_image(other_card, is_private=True)
        if filename:
            if not request.user.other_card:
                request.user.score += get_score_stage(5)
                request.user.score_records.create(score=get_score_stage(5),
                                                  type="初始数据",
                                                  description="首次身份认证")
            request.user.other_card = filename
            request.user.save()
            abort(200)
        abort(500, '图片保存失败')
Beispiel #7
0
    def post(self, request):
        """上传身份证照片"""

        # 等待审核或者已通过审核不能上传照片
        if request.user.is_verified in [1, 2]:
            abort(403, '等待审核或已实名认证')
        if request.user.is_verified == 4:
            abort(403, '已通过eid认证')

        id_card = request.FILES.get('image')
        if not id_card:
            abort(400, '图片上传失败')

        filename = save_uploaded_image(id_card, is_private=True)
        if filename:
            if not request.user.id_card:
                request.user.score += get_score_stage(5)
                request.user.score_records.create(score=get_score_stage(5),
                                                  type="初始数据",
                                                  description="首次实名认证")
            request.user.id_card = filename
            request.user.save()
            abort(200)
        abort(500, '图片保存失败')