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')
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
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'))
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')
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("/")
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']
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
def enter_password(self, user): self.input(*self.locator.PASSWORD, text=data.get_user(user)["password"])
def enter_email(self, user): self.input(*self.locator.USER_NAME, text=data.get_user(user)["email"])
def is_admin(): current_user = data.get_user(current_user_id()) return current_user['admin']
def wall(): if 'user_id' in session: return render_template('wall.html', user=get_user(session['user_id'])) else: return redirect('/login')
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={
'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(