Example #1
0
def login_user(response=None):
	if not response:
		response = flask.make_response()

	form_data = flask.request.form
	try:
		data.get_user(
			form_data['username'],
			form_data['password'],
		)
		set_current_user(form_data, response)

		return response
	except (data.BadPassword, data.MissingUser) as e:
		raise UserLoginError('Incorrect username/password')
Example #2
0
def other_wall(user_id):
    if 'user_id' in session and session['user_id'] == user_id:
        return redirect('/wall')
    user = get_user(user_id)
    if user:
        return render_template('other_wall.html', user=user)
    else:
        return render_template('user_not_found.html'), 404
Example #3
0
def charsheet_view(request):
    """Render stats for a user."""
    username = request.matchdict.get('username')
    user = data.get_user(username)
    if user:
        request.session.flash("Character sheet generated.")
        return dict(stats=user)
    else:
        return HTTPFound(location=request.route_url('home'))
Example #4
0
def post_comment(user_id):
    if 'user_id' in session:
        current_user = get_user(session['user_id'])
        user = get_user(user_id)
        if user:
            if request.method == 'GET':
                form = CommentForm(wall_owner=user, author=current_user)
                return render_template('wall_comment.html', form=form)
            else:
                form = CommentForm.from_request(request,
                                                wall_owner=user,
                                                author=current_user)
                if form.is_valid():
                    form.post_comment()
                    return redirect('/wall/{}'.format(user_id))
                else:
                    return render_template('wall_comment.html', form=form)
        else:
            return render_template('user_not_found.html'), 404
    else:
        return redirect('/login')
Example #5
0
def login():
    """Login route, redirects to root."""
    # Grab username
    username = request.form.get("username")

    # Try to "log in" (note to self: should implement a password check one day)
    try:
        session["user"] = data.get_user(username=username)
    except IndexError:
        flash("Could not log you in: unknown username")

    # Goto root
    return redirect("/")
Example #6
0
def try_login_user():
    if facebook.token and 'user_id' not in flask.session:
        # ask FB for account ID
        res = requests.get('https://graph.facebook.com/me?access_token=' +
                           facebook.token['access_token'])
        fb_json = res.json()
        # try and get the user from out local DB
        user = data.get_user(fb_json['id'])
        # if we havent seen this user before, register them
        if not user:
            data.register_user(fb_json['id'], fb_json['name'])
        # save the users ID to our session
        flask.session['user_id'] = fb_json['id']
Example #7
0
def get_user_context(user_id):
    # gets a context used for template rendering of the given user
    user = data.get_user(user_id)
    if user is None:
        return None
    res = None
    if facebook is not None and facebook.token is not None:
        res = requests.get('https://graph.facebook.com/v3.2/' +
                           str(user['id']) +
                           '/picture?type=large&redirect=false&access_token=' +
                           facebook.token['access_token'])
    avatar_url = "https://i.imgur.com/IGUApaz.jpg"
    if res is not None and res.ok:
        avatar_url = res.json()['data']['url']
    user['avatar_url'] = avatar_url
    return user
Example #8
0
 def enter_password(self, user):
     self.input(*self.locator.PASSWORD,
                text=data.get_user(user)["password"])
Example #9
0
 def enter_email(self, user):
     self.input(*self.locator.USER_NAME, text=data.get_user(user)["email"])
Example #10
0
def is_admin():
    current_user = data.get_user(current_user_id())
    return current_user['admin']
Example #11
0
def wall():
    if 'user_id' in session:
        return render_template('wall.html', user=get_user(session['user_id']))
    else:
        return redirect('/login')
Example #12
0
PostType = GraphQLObjectType(
    'Post',
    lambda: {
        'id':
        global_id_field(),
        'post_id':
        GraphQLField(GraphQLInt, resolver=lambda obj, *_: obj.id),
        'parent':
        GraphQLField(GraphQLInt),
        'title':
        GraphQLField(GraphQLString),
        'text':
        GraphQLField(GraphQLString),
        'author':
        GraphQLField(UserType, resolver=lambda *_: get_user()),
        'comments':
        GraphQLField(GraphQLList(PostType),
                     description='Posted comments',
                     resolver=lambda post, *_: get_comments_for(post.id)),
        'tags':
        GraphQLField(
            GraphQLList(GraphQLString),
            description='Tags',
        ),
    },
    interfaces=[node_interface])

QueryRootType = GraphQLObjectType(
    name='Query',
    fields={
Example #13
0
    'User', {
        'id': global_id_field(),
        'email': GraphQLField(GraphQLString),
        'name': GraphQLField(GraphQLString),
    },
    interfaces=[node_interface])


PostType = GraphQLObjectType(
    'Post', lambda: {
        'id': global_id_field(),
        'post_id': GraphQLField(GraphQLInt, resolver=lambda obj, *_: obj.id),
        'parent':  GraphQLField(GraphQLInt),
        'title': GraphQLField(GraphQLString),
        'text': GraphQLField(GraphQLString),
        'author': GraphQLField(UserType, resolver=lambda *_: get_user()),
        'comments': GraphQLField(
            GraphQLList(PostType),
            description= 'Posted comments',
            resolver=lambda post, *_: get_comments_for(post.id)
        ),
        'tags': GraphQLField(
            GraphQLList(GraphQLString),
            description='Tags',
        ),
    },
    interfaces=[node_interface])



QueryRootType = GraphQLObjectType(