示例#1
0
    def get(self, prefix):
        page = request.args.get('page', 0, type=int)
        limit = request.args.get('limit', 10, type=int)
        order = request.args.get('order', 'desc')

        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            if token_is_auth(request.headers['Authorization'], user_id):
                _return = {
                    'paging': {
                        'previous': '%s%s?page=%d&limit=%d&order=%s' % (
                            DEFAULT_URL, request.path, page if page < 1 else page - 1, limit, order
                        ),
                        'next': '%s%s?page=%d&limit=%d&order=%s' % (
                            DEFAULT_URL, request.path, page + 1, limit, order
                        )
                    },
                    'data': []
                }

                histories = get_login_histories(user_id, order, page, limit)

                for history in histories:
                    _return['data'].append(serialize_login_history(history))

                return _return, status.HTTP_200_OK
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#2
0
    def delete(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(
                    request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                if user_query.count():
                    token_delete_all(user_id)

                    user = user_query.first()
                    db.session.delete(user)
                    db.session.commit()

                    return None, status.HTTP_200_OK
                else:
                    return "The user does not exist.", status.HTTP_404_NOT_FOUND
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#3
0
    def get(self):
        page = request.args.get('page', 0, type=int)
        limit = request.args.get('limit', 10, type=int)
        order = request.args.get('order', 'desc')

        if token_is_auth(request.headers['Authorization']):
            _return = {
                'paging': {
                    'previous':
                    '%s%s?page=%d&limit=%d&order=%s' %
                    (DEFAULT_URL, request.path, page if page < 1 else page - 1,
                     limit, order),
                    'next':
                    '%s%s?page=%d&limit=%d&order=%s' %
                    (DEFAULT_URL, request.path, page + 1, limit, order)
                },
                'data': []
            }

            users = get_users(order, page, limit)

            for user in users:
                _return['data'].append(serialize_user(user))

            return _return, status.HTTP_200_OK

        return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
示例#4
0
文件: user.py 项目: gnidoc327/Frest
    def delete(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                if user_query.count():
                    token_delete_all(user_id)

                    user = user_query.first()
                    db.session.delete(user)
                    db.session.commit()

                    return None, status.HTTP_200_OK
                else:
                    return "The user does not exist.", status.HTTP_404_NOT_FOUND
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#5
0
文件: users.py 项目: gnidoc327/Frest
    def get(self):
        page = request.args.get('page', 0, type=int)
        limit = request.args.get('limit', 10, type=int)
        order = request.args.get('order', 'desc')

        if token_is_auth(request.headers['Authorization']):
            _return = {
                'paging': {
                    'previous': '%s%s?page=%d&limit=%d&order=%s' % (
                        DEFAULT_URL, request.path, page if page < 1 else page - 1, limit, order
                    ),
                    'next': '%s%s?page=%d&limit=%d&order=%s' % (
                        DEFAULT_URL, request.path, page + 1, limit, order
                    )
                },
                'data': []
            }

            users = get_users(order, page, limit)

            for user in users:
                _return['data'].append(serialize_user(user))

            return _return, status.HTTP_200_OK

        return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
示例#6
0
    def get(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            if token_is_auth(request.headers['Authorization'], user_id):
                user = get_user(user_id)
                return serialize_user(user), status.HTTP_200_OK
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#7
0
文件: user.py 项目: gnidoc327/Frest
    def get(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            if token_is_auth(request.headers['Authorization'], user_id):
                user = get_user(user_id)

                return serialize_user(user), status.HTTP_200_OK
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#8
0
    def get(self):
        page = request.args.get('page', 0, type=int)
        limit = request.args.get('limit', 10, type=int)
        order = request.args.get('order', 'desc')

        if token_is_auth(request.headers['Authorization']):
            _return = {'paging': paging.get_urls(), 'data': []}

            users = get_users(order, page, limit)

            for user in users:
                _return['data'].append(serialize_user(user))

            return _return, status.HTTP_200_OK

        return "You don't have permission.", status.HTTP_401_UNAUTHORIZED
示例#9
0
    def put(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(
                    request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                user_permission = token_load_with_auth(
                    request.headers['Authorization'])['permission']

                if user_permission != 'ADMIN' and request.form.get(
                        'permission') is not None:
                    return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

                form = userValidate.modificationForm(request.form)

                if form.validate():
                    if user_query.count():
                        user = user_query.first()

                        try:
                            for key, value in request.form.items():
                                if value is not None and value != '':
                                    if key == 'password':
                                        value = generate_password_hash(value)
                                        token_expire_all(user.id)

                                    setattr(user, key, value)

                            user.updated_at = datetime.datetime.now()
                            db.session.commit()
                        except IntegrityError as e:
                            field, value = get_exists_error(e)

                            _return = {
                                'message':
                                "'" + value + "' is already exists.",
                                'field': {
                                    'label': getattr(form, field).label.text,
                                    'name': field
                                }
                            }

                            return _return, status.HTTP_400_BAD_REQUEST

                        return None, status.HTTP_200_OK
                    else:
                        return "The user does not exist.", status.HTTP_404_NOT_FOUND

                for field, errors in form.errors.items():
                    for error in errors:
                        _return = {
                            'message': error,
                            'field': getattr(form, field).label.text
                        }

                        return _return, status.HTTP_400_BAD_REQUEST
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST
示例#10
0
文件: user.py 项目: gnidoc327/Frest
    def put(self, prefix):
        try:
            if prefix == 'me':
                user_id = token_load_with_auth(request.headers['Authorization'])['user_id']
            else:
                user_id = int(prefix)

            user_query = UserModel.query \
                .filter(UserModel.id == user_id)

            if token_is_auth(request.headers['Authorization'], user_id):
                user_permission = token_load_with_auth(request.headers['Authorization'])['permission']

                if user_permission != 'ADMIN' and request.form.get('permission') is not None:
                    return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

                form = userValidate.modificationForm(request.form)

                if form.validate():
                    if user_query.count():
                        user = user_query.first()

                        try:
                            for key, value in request.form.items():
                                if value is not None and value != '':
                                    if key == 'password':
                                        value = generate_password_hash(value)
                                        token_expire_all(user.id)

                                    setattr(user, key, value)

                            user.updated_at = datetime.datetime.now()
                            db.session.commit()
                        except IntegrityError as e:
                            field, value = get_exists_error(e)

                            _return = {
                                'message': "'" + value + "' is already exists.",
                                'field': {
                                    'label': getattr(form, field).label.text,
                                    'name': field
                                }
                            }

                            return _return, status.HTTP_400_BAD_REQUEST

                        return None, status.HTTP_200_OK
                    else:
                        return "The user does not exist.", status.HTTP_404_NOT_FOUND

                for field, errors in form.errors.items():
                    for error in errors:
                        _return = {
                            'message': error,
                            'field': getattr(form, field).label.text
                        }

                        return _return, status.HTTP_400_BAD_REQUEST
            else:
                return "You don't have permission.", status.HTTP_401_UNAUTHORIZED

        except ValueError:
            return "Prefix can only be me or a number.", status.HTTP_400_BAD_REQUEST