Ejemplo n.º 1
0
    def post(self, request):
        E = EasyDict()
        E.uk = -1
        E.key, E.acc, E.pwd, E.code, E.name, E.uni = 1, 2, 3, 4, 5, 6
        kwargs: dict = json.loads(request.body)
        if kwargs.keys() != {'acc', 'ver_code', 'pwd', 'name'}:
            return E.key,
        if not CHECK_ACC(kwargs['acc']):
            return E.acc,
        if not CHECK_PWD(kwargs['pwd']):
            return E.pwd,
        if not CHECK_NAME(kwargs['name']):
            return E.name,
        kwargs.update({'pwd': hash_password(kwargs['pwd'])})
        kwargs.update({'portrait': DEFAULT_PROFILE_ROOT + '\handsome.jpg'})
        er = EmailRecord.objects.filter(code=kwargs['ver_code'], acc=kwargs['acc'])
        if not er.exists():
            return E.code
        er = er.get()
        kwargs.pop('ver_code')

        if datetime.now() < er.expire_time:
            try:
                # print(kwargs)
                root = Entity.locate_root(name=kwargs['name'])
                u = User.objects.create(root=root, **kwargs)
            except IntegrityError:
                return E.uni,  # 字段unique未满足
            except DataError as e:
                return E.uk,  # 诸如某个CharField超过了max_len的错误
            except:
                return E.uk,
            request.session['is_login'] = True
            request.session['uid'] = encode(u.id)
            # print(u.portrait.path)
            return 0,
        else:
            return 7
Ejemplo n.º 2
0
 def post(self, request):
     E = EasyDict()
     E.uk = -1
     E.key, E.auth, E.name = 1, 2, 3
     kwargs: dict = json.loads(request.body)
     if kwargs.keys() != {'name'}:
         return E.key
     if not request.session['is_login']:
         return E.auth
     try:
         owner = User.objects.get(id=int(decode(request.session['uid'])))
     except:
         return E.auth
     if not (0 <= len(str(kwargs['name'])) <= TEAM_NAME_MAX_LENGTH and str(kwargs['name']).isprintable()):
         return E.name
     try:
         # 创建新根文件夹
         root = Entity.locate_root(kwargs['name'])
         team = Team.objects.create(name=kwargs['name'], root=root)
         Member.objects.create(team=team, member=owner, auth='owner')
     except:
         return E.uk
     return 0