Example #1
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.password = '******'

    with context.app.app_context():
        context.user = User(
            email=context.email,
            password=context.password,
        )
        db.session.add(context.user)
        db.session.commit()
Example #2
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.password = '******'

    with context.app.app_context():
        context.user = User(
            email=context.email,
            password="******",
        )
        db.session.add(context.user)
        db.session.commit()
Example #3
0
def register():
    username = request.form.get('username')
    password = request.form.get('password')
    password_repeat = request.form.get('password_repeat')
    if not user or not password or not password_repeat:
        return jsonify(code=101, msg=u'参数不全')
    if password_repeat != password:
        return jsonify(code=101, msg=u'密码不一致')
    row = User(username=username)
    row.set_password(password)
    db.session.add(row)
    db.session.commit()
    return jsonify(code=200, msg=u'注册成功')
Example #4
0
    def __init__(self, frame_controller, user_id):
        self.chq_account = None
        self.sav_account = None

        self.frame_controller = frame_controller
        self.interface = ViewWithdraw(self.frame_controller.master)
        self.interface.main_menu_btn.config(
            command=lambda: self.frame_controller.change_controller(
                'main_menu', self.frame_controller.user_id))

        if 'chequing_account' in User(user_id).accounts.keys():
            self.chq_account = Account(userid=user_id,
                                       account_type='chequing_account')
            self.interface.show_chequing()
            self.interface.show_chq_balance(self.chq_account.balance)
            self.interface.chequing_but.config(command=self._click_chequing)

        if 'saving_account' in User(user_id).accounts.keys():
            self.sav_account = Account(userid=user_id,
                                       account_type='saving_account')
            self.interface.show_saving()
            self.interface.show_sav_balance(self.sav_account.balance)
            self.interface.savings_but.config(command=self._click_saving)
Example #5
0
    def post(self):
        """Serve POST requests."""
        try:
            user = User(email=request.form.get('email', ''),
                        password=request.form.get('password', ''))
        except ValidationError as error:
            return {'errors': error.message}, 400

        db.session.add(user)
        db.session.commit()

        login_user(user)

        return marshal(user, user_fields), 201
Example #6
0
    def __init__(self, pro, doc, group, organization=None):

        self.project = pro
        self.document = doc
        self.groups = [group.key, Group.get_worldshare().key]
        self.organization = organization

        self.user = User()
        self.user.groups = self.groups

        if organization:
            self.user.organization = organization.key

        self.html = ''
        self.body = Pq('<span></span>')
Example #7
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.access_token = 'existing-token'
    context.scope = ''
    context.token_type = 'bearer'

    with context.app.app_context():
        context.user = User(email=context.email)
        db.session.add(context.user)
        db.session.commit()
        context.token = GithubAccessToken(context.user.id, context.token_type,
                                          context.scope, context.access_token)
        db.session.add(context.token)
        db.session.commit()

        context.expected_user_id = context.user.id
Example #8
0
    def __init__(self, pro, doc, wc, group, organization=None):
        self.project = pro
        self.document = doc
        self.word_count = wc
        self.groups = [group.key, Group.get_worldshare().key]
        self.organization = organization

        self.user = User()
        self.user.groups = self.groups
        self.walker = ConceptPublishWalker(pro)

        if organization:
            self.user.organization = organization.key

        self.html = ''
        self.body = Pq('<span></span>')
        self.con_count = 0
        self.paragraph = None
Example #9
0
def create_user(name, password, email):
    try:
        user = User(name, password, email)
        db.session.add(user)
        db.session.flush()
        alias = Alias(user.id, email)
        db.session.add(alias)
        db.session.commit()
        clear_user_cache(user)
        return user, None
    except sqlalchemy.exc.IntegrityError, e:
        db.session.rollback()
        if 'Duplicate entry' in e.message and 'email' in e.message:
            return None, code.ACCOUNT_EMAIL_EXISTS
        if 'Duplicate entry' in e.message and 'name' in e.message:
            return None, code.ACCOUNT_USERNAME_EXISTS
        logger.exception(e)
        return None, code.UNHANDLE_EXCEPTION
Example #10
0
def spotify_oauth_handler(response):
    next_url = request.args.get('next') or url_for('app.index')

    if response is None or not response.get('access_token'):
        flash(u'You denied the request to sign in')
        return redirect(next_url)

    session['spotify_accesstoken'] = response.get('access_token')
    spotify_user = spotify.get('/v1/me').data

    user = User.query.filter(User.email == spotify_user.get('email')).first()
    if not user:
        # Create the user object if the user wasn't signed up.
        user = User(spotify_user.get('email'))
        db.session.add(user)
        db.session.commit()

    if user.spotify_accesstoken:
        # Get the access token and change it.
        spotify_accesstoken = user.spotify_accesstoken
        spotify_accesstoken.token_type = response.get('token_type')
        spotify_accesstoken.scope = response.get('scope')
        spotify_accesstoken.access_token = response.get('access_token')
        spotify_accesstoken.expires_in = response.get('expires_in')
        spotify_accesstoken.refresh_token = response.get('refresh_token')
    else:
        # Save the token for the user.
        spotify_accesstoken = SpotifyAccessToken(
            user.id,
            spotify_user.get('token_type'),
            spotify_user.get('scope'),
            spotify_user.get('access_token'),
            spotify_user.get('expires_in'),
            spotify_user.get('refresh_token'),
        )
    db.session.add(spotify_accesstoken)
    db.session.commit()

    login_user(spotify_accesstoken.user)

    return redirect(next_url)
Example #11
0
def step_impl(context):
    context.email = '*****@*****.**'
    context.access_token = 'existing-token'
    context.scope = ''
    context.token_type = 'bearer'
    context.expires_in = 23
    context.refresh_token = 'refresh-token'

    with context.app.app_context():
        context.user = User(email=context.email)
        db.session.add(context.user)
        db.session.commit()
        context.token = SpotifyAccessToken(user_id=context.user.id,
                                           token_type=context.token_type,
                                           scope=context.scope,
                                           access_token=context.access_token,
                                           expires_in=context.expires_in,
                                           refresh_token=context.refresh_token)
        db.session.add(context.token)
        db.session.commit()

        context.expected_user_id = context.user.id
Example #12
0
    def create_user(self, **kwargs):
        username = kwargs.get("username")
        if username:
            user = UserCache.get(username)
            if user is not None:
                user, authenticated = self.validate(username,
                                                    kwargs.get("password"))
                if authenticated:
                    return user
                else:
                    return abort(401, "authenticate validate failed")
        else:
            return abort(400, "argument username is required")
        user = User()
        email = kwargs.get("email", "")
        if not email:
            return abort(400, "argument email is required")
        user.email = email
        user.password = kwargs.get("password")
        user.username = kwargs.get("username", "")
        user.nickname = kwargs.get("nickname") if kwargs.get("nickname") \
            else kwargs.get("username", "")
        key, secret = self._generate_key()
        user.key = key
        user.secret = secret
        user.date_joined = datetime.datetime.now()
        user.block = 0

        db.session.add(user)
        try:
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            current_app.logger.error("create user is error {0}".format(str(e)))
            return abort(500, "create user is error, {0}".format(str(e)))
        return user
Example #13
0
    def __init__(self, pro, doc, sc, minb, maxb, group, organization=None):
        self.project = pro
        self.document = doc
        self.slide_count = sc
        self.min_bullet = minb
        self.max_bullet = maxb
        self.groups = [group.key, Group.get_worldshare().key]
        self.organization = organization

        self.user = User()
        self.user.groups = self.groups
        self.walker = ConceptPublishWalker(pro)

        if organization:
            self.user.organization = organization.key

        self.html = ''
        self.body = Pq('<div></div>')
        self.body.attr('id', 'presentation-div')
        self.body.add_class('')
        self.con_count = 0
        self.slides = []
        self.cur_y = 0
        self.y_step = 525
Example #14
0
def github_oauth_handler(response):
    next_url = request.args.get('next') or url_for('app.index')

    if response is None or not response.get('access_token'):
        flash(u'You denied the request to sign in')
        return redirect(next_url)

    session['github_accesstoken'] = response.get('access_token')
    github_user = github.get('user').data

    user = User.query.filter(User.email == github_user.get('email')).first()
    if not user:
        # Create the user object if the user wasn't signed up.
        user = User(github_user.get('email'))
        db.session.add(user)
        db.session.commit()

        # Save the token for the user.
        github_accesstoken = GithubAccessToken(
            user.id,
            github_user.get('token_type'),
            github_user.get('scope'),
            github_user.get('access_token'),
        )
        db.session.add(github_accesstoken)
        db.session.commit()
    else:
        # Get the access token and change it.
        github_accesstoken = user.github_accesstoken
        github_accesstoken.token_type = github_user.get('token_type')
        github_accesstoken.scope = github_user.get('scope')
        github_accesstoken.access_token = github_user.get('access_token')

    login_user(github_accesstoken.user)

    return redirect(next_url)
Example #15
0
    def get(self, project, document, group):
        if not project:
            raise HttpErrorException.bad_request('invalid project given')

        project = Project.get_by_id(project)
        if not project:
            raise HttpErrorException.bad_request('invalid project given')
        if not project.has_permission_read(self.user):
            raise HttpErrorException.forbidden()

        if not document:
            raise HttpErrorException.bad_request('invalid document given')

        document = Document.get_by_id(document)
        if not document:
            raise HttpErrorException.bad_request('invalid document given')
        if not document.has_permission_read(self.user):
            raise HttpErrorException.forbidden()

        if not group:
            raise HttpErrorException.bad_request('invalid group given')

        group = Group.get_by_id(group)
        if not group:
            raise HttpErrorException.bad_request('invalid group given')

        if document.key not in project.documents and document.key != project.distilled_document:
            raise HttpErrorException.bad_request(
                'document does not belong to project')

        temp_user = User()
        temp_user.groups = [group.key, Group.get_worldshare().key]
        org = self.user.organization if self.user.organization else None

        if org:
            temp_user.organization = org

        if not document.has_permission_read(temp_user):
            raise HttpErrorException.bad_request(
                'Group does not have permission to read the document')

        pubs = document.get_presentation_published(group=group)
        version_int = PublishDocument.get_largest_version(pubs)

        if version_int is None:
            version_int = 1
        else:
            version_int += 1

        version = self.request.get('version', str(version_int))
        if version == 'latest':
            raise HttpErrorException.bad_request('invalid version given')

        for pub in pubs:
            if pub.version == version:
                raise HttpErrorException.bad_request(
                    'version name already taken')

        try:
            slide_count = int(self.request.get('slide_count', 15))
        except ValueError:
            raise HttpErrorException.bad_request(
                'invalid slide count, must be integer')
        if slide_count < 1:
            raise HttpErrorException.bad_request(
                'invalid slide_count given min 1')
        if slide_count > 100:
            raise HttpErrorException.bad_request(
                'invalid slide_count given max 100')

        try:
            min_bullet = int(self.request.get('min_bullet', 4))
        except ValueError:
            raise HttpErrorException.bad_request(
                'invalid min bullet, must be integer')
        if min_bullet < 1:
            raise HttpErrorException.bad_request(
                'invalid min_bullet given min 1')
        if min_bullet > 15:
            raise HttpErrorException.bad_request(
                'invalid min_bullet given max 15')

        try:
            max_bullet = int(self.request.get('max_bullet', 6))
        except ValueError:
            raise HttpErrorException.bad_request(
                'invalid max bullet, must be integer')
        if max_bullet < 1:
            raise HttpErrorException.bad_request(
                'invalid max_bullet given min 1')
        if max_bullet > 15:
            raise HttpErrorException.bad_request(
                'invalid max_bullet given max 15')

        if min_bullet > max_bullet:
            raise HttpErrorException.bad_request(
                'min_bullet can not be greater than max_bullet')

        publisher = PresentationPublisherThread()
        publisher.id = server.create_uuid()
        publisher.request = self
        publisher.project = project
        publisher.document = document
        publisher.slide_count = slide_count
        publisher.min_bullet = min_bullet
        publisher.max_bullet = max_bullet
        publisher.group = group
        publisher.user = self.user
        publisher.version = version

        if publisher.is_lock():
            raise HttpErrorException.bad_request('publisher already running')
        publisher.start()

        self.write_json_response({'id': publisher.id})

        self.get_analytic_session()
        document.record_analytic('pres_publish',
                                 self.analytic_session,
                                 project=project.key)
Example #16
0
    def get(self, project, document, group):
        if not project:
            raise HttpErrorException.bad_request('invalid project given')

        project = Project.get_by_id(project)
        if not project:
            raise HttpErrorException.bad_request('invalid project given')
        if not project.has_permission_read(self.user):
            raise HttpErrorException.forbidden()

        if not document:
            raise HttpErrorException.bad_request('invalid document given')

        document = Document.get_by_id(document)
        if not document:
            raise HttpErrorException.bad_request('invalid document given')
        if not document.has_permission_read(self.user):
            raise HttpErrorException.forbidden()

        if not group:
            raise HttpErrorException.bad_request('invalid group given')

        group = Group.get_by_id(group)
        if not group:
            raise HttpErrorException.bad_request('invalid group given')

        temp_user = User()
        temp_user.groups = [group.key, Group.get_worldshare().key]
        org = self.user.organization if self.user.organization else None

        if org:
            temp_user.organization = org

        if not document.has_permission_read(temp_user):
            raise HttpErrorException.bad_request(
                'Group does not have permission to read the document')

        if document.key not in project.documents and document.key != project.distilled_document:
            raise HttpErrorException.bad_request(
                'document does not belong to project')

        pubs = document.get_published(group=group)
        version_int = PublishDocument.get_largest_version(pubs)

        if version_int is None:
            version_int = 1
        else:
            version_int += 1

        version = self.request.get('version', str(version_int))
        if version == 'latest':
            raise HttpErrorException.bad_request('invalid version given')

        pubs = document.get_published(group=group)
        for pub in pubs:
            if pub.version == version:
                raise HttpErrorException.bad_request(
                    'version name already taken')

        publisher = DocumentPublisherThread()
        publisher.id = server.create_uuid()
        publisher.request = self
        publisher.project = project
        publisher.document = document
        publisher.group = group
        publisher.user = self.user
        publisher.version = version

        if publisher.is_lock():
            raise HttpErrorException.bad_request('publisher already running')
        publisher.start()

        self.write_json_response({'id': publisher.id})

        self.get_analytic_session()
        document.record_analytic('doc_publish',
                                 self.analytic_session,
                                 project=project.key)