def post(self): args = utils.gen_fields(reqparse.RequestParser(), ['username', 'email', 'password']) same_email = utils.col.find({"email": args['email']}) same_username = utils.col.find({"username": args['username']}) print(json_util.dumps(same_email)) if same_email.count() > 0: return en_us.EMAIL_EXISTS if same_username.count() > 0: return en_us.UNAME_EXISTS user = { "username": args['username'], "email": args['email'], "password": auth.make_password(args['password']), "id": account_utils.get_user_id(), "time_created": int(time.time()) } user.update({"salt": auth.salt()}) utils.col.insert(user) user.update({"token": auth.generate(user)}) return auth.user(json.loads(json_util.dumps(user))), 201
def post(self, clientid, key): cur_time = int(time.time()) user = utils.col.find({"id": clientid}) if user.count() == 0: return en_us.AUTH_FAILED user = utils.encoder(user)[0] secret = user["salt"] try: enterance_payload = jwt.decode(key, secret, algorithms=["HS256"]) except jwt.exceptions.DecodeError: return en_us.AUTH_FAILED if enterance_payload["expiration"] < cur_time: return en_us.AUTH_FAILED if enterance_payload['user'] != clientid: return en_us.AUTH_FAILED # good to go reset the password, but what is the password? args = utils.gen_fields(reqparse.RequestParser(), ['password']) if args["password"] == "" or args["password"] == None: return en_us.BAD_REQUEST utils.col.update( {"id": clientid}, {"$set": { "password": auth.make_password(args["password"]) }})
def post(self): q_args = ["username", "email", "password"] args = utils.gen_fields(reqparse.RequestParser(), q_args) same_email = utils.col.find({"email": args['email']}) same_username = utils.col.find({"username": args['username']}) for arg in q_args: if arg not in args: return en_us.BAD_REQUEST if args[arg] == None or args[arg] == "": return en_us.BAD_REQUEST if same_email.count() > 0: return en_us.EMAIL_EXISTS if same_username.count() > 0: return en_us.UNAME_EXISTS user = { "username": args['username'], "email": args['email'], "password": auth.make_password(args['password']), "id": account_utils.get_user_id(), "time_created": int(time.time()) } user.update({"salt": auth.salt()}) utils.col.insert(user) user.update({"token": auth.generate(user)}) return auth.user(utils.encoder(user)), 201
def post(self): fields = ["username", "email"] q_args = ["username", "password"] args = utils.gen_fields(reqparse.RequestParser(), q_args) for arg in q_args: if arg not in args: return en_us.BAD_REQUEST if args[arg] == None or args[arg] == "": return en_us.BAD_REQUEST m_length = 0 users = None for field in fields: length = len(utils.encoder(utils.col.find({field: args['username']}))) if length > m_length: m_length = length users = utils.encoder(utils.col.find({field: args['username']})) if m_length == 0: return en_us.NOT_FOUND user = utils.encoder(users)[0] if not auth.check_password(args['password'], user['password']): return en_us.AUTH_FAILED user.update({"token": auth.generate(user)}) return auth.user(user), 200
def post(self): args = utils.gen_fields(reqparse.RequestParser(), ['username', 'password']) fields = ["username", "email"] m_length = 0 users = None for field in fields: length = len( utils.encoder(utils.col.find({field: args['username']}))) if length > m_length: m_length = length users = utils.encoder(utils.col.find({field: args['username']})) if m_length == 0: return en_us.NOT_FOUND user = utils.encoder(users)[0] if not auth.check_password(args['password'], user['password']): return en_us.AUTH_FAILED user.update({"token": auth.generate(user)}) return auth.user(user), 200
def post(self): args = utils.gen_fields(reqparse.RequestParser(), ['identification']) r = account_utils.password_reset(args["identification"]) if r == 404: return en_us.NOT_FOUND if r == 400: return en_us.BAD_REQUEST return en_us.RESET_REQ_MADE
def patch(self, client_id): request_token = request.headers.get('authorization') auth_status = auth.verify(client_id, request_token) if auth_status != 200: return auth_status args = utils.gen_fields(reqparse.RequestParser(), ['username', 'email', 'password']) updates = {} for key in args: if key == "password": args[key] = auth.make_password(args[key]) if args[key] != None: updates.update({key: args[key]}) utils.col.update({'id': client_id}, {"$set": updates}, upsert=False) user = utils.encoder(utils.col.find({"id": client_id}))[0] return auth.user(user), 200
def post(self, client_id): request_token = request.headers.get('authorization') auth_status = auth.verify(client_id, request_token) if auth_status != 200: return auth_status args = utils.gen_fields(reqparse.RequestParser(), ['name', 'description', 'start_command', 'stop_command', 'restart_command', 'status_command', 'log_command']) service = args service.update( { "id": services_util.new_id(), "associated_to": client_id, "logs": [] } ) utils.services.insert(service) return utils.encoder(service), 201