def dashboard(user_url_segment=None): if user_url_segment is None: target_user = UserData.get_current_user_data() else: target_user = UserData.get_from_url_segment(user_url_segment) if target_user is None: template_values = { 'target_user': user_url_segment, } return render_jinja_template("noprofile.html", template_values), 404 if target_user.username != user_url_segment: return redirect('/dashboard/{0}'.format(target_user.username)) # If looking at the current user's profile, hilight the users name in the # nav bar if target_user == UserData.get_current_user_data(): return redirect('/'.format(target_user.username)) else: active = None template_values = { 'target_user': target_user, } return render_jinja_template("dashboard.html", template_values)
def index(): template_values = { 'active_page': 'home', 'target_user': UserData.get_current_user_data(), } if UserData.get_current_user_data(): return render_jinja_template("dashboard.html", template_values) else: return render_jinja_template("index.html", template_values)
def render_jinja_template(name, context=None): """ Renders a jinja template witha given context This function will also add global template values. Args: name: The name of the jinja template to be rendered context (dict): A dictionary of values to pass to the template """ # We want to make sure all templates have this function, but we also # need to avoid circular dependencies so import this here. from permissions import check_perms template_values = { 'user_data': UserData.get_current_user_data(), 'login_url': url_for('login', next=request.path), 'logout_url': users.create_logout_url("/"), 'check_perms': check_perms, 'is_admin': users.is_current_user_admin(), } if context != None: template_values.update(context) return render_template(name, **template_values)
def postlogin(): """ Handler for just after a user has logged in This takes care of making sure the user has properly setup their account. """ next_url = request.args.get("next", "/") user_data = UserData.get_current_user_data() if not user_data: # Need to create a user account signup_url = url_for("signup", next=next_url) return redirect(signup_url) else: return redirect(next_url)
def profile(user_url_segment): target_user = UserData.get_from_url_segment(user_url_segment) if target_user is None: template_values = { 'target_user': user_url_segment, } return render_jinja_template("noprofile.html", template_values), 404 if target_user.username != user_url_segment: return redirect('/profile/{0}'.format(target_user.username)) # If looking at the current user's profile, hilight the users name in the # nav bar if target_user == UserData.get_current_user_data(): active = 'profile' else: active = None template_values = { 'active_page': active, 'target_user': target_user, } return render_jinja_template("profile.html", template_values)
def wrapper(*args, **kwargs): current_user = UserData.get_current_user_data() if not current_user: template_values = { u'message': u"Not logged in", u'html_template': u"nologin.html", } return build_response(output_format, template_values) missing_perms = [] if 'user_url_segment' in kwargs: other_user_url_segment = kwargs['user_url_segment'] elif 'user_id' in kwargs: other_user_url_segment = kwargs['user_id'] else: other_user_url_segment = None if other_user_url_segment: other_user = UserData.get_from_url_segment(other_user_url_segment) else: other_user = None for p in perms: if not check_perms(current_user, p, other_user): missing_perms.append(p) template_values = { u'message': "Don't have permission", u'html_template': "nopermission.html", u'perms': missing_perms, } if len(missing_perms) > 0 and logic == 'and': return build_response(output_format, template_values) elif len(missing_perms) == len(perms) and logic == 'or': return build_response(output_format, template_values) return f(*args, **kwargs)