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
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