Beispiel #1
0
    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
Beispiel #2
0
    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"])
            }})
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
    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
Beispiel #6
0
 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
Beispiel #7
0
    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
Beispiel #8
0
    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