From 68537a1ff97c09e1125ee889d8be8b2bf71b2334 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Mar 31 2014 11:52:24 +0000 Subject: Add endpoint to see the user's settings and update one's own ssh key Signed-off-by: Pierre-Yves Chibon --- diff --git a/progit/app.py b/progit/app.py index 54014e0..9404e03 100644 --- a/progit/app.py +++ b/progit/app.py @@ -197,3 +197,37 @@ def new_project(): 'new_project.html', form=form, ) + + +@APP.route('/settings/', methods=('GET', 'POST')) +@cla_required +def user_settings(): + """ Update the user settings. + """ + user = progit.lib.get_user(SESSION, flask.g.fas_user.username) + + form = progit.forms.UserSettingsForm() + if form.validate_on_submit(): + ssh_key = form.ssh_key.data + + try: + message = progit.lib.update_user_ssh( + SESSION, + user=user, + ssh_key=ssh_key, + ) + SESSION.commit() + flask.flash(message) + return flask.redirect( + flask.url_for('view_user', username=user.user)) + except SQLAlchemyError, err: # pragma: no cover + SESSION.rollback() + flask.flash(str(err), 'error') + elif flask.request.method == 'GET': + form.ssh_key.data = user.public_ssh_key + + return flask.render_template( + 'user_settings.html', + user=user, + form=form, + ) diff --git a/progit/static/progit.css b/progit/static/progit.css index cbe37c6..874f8bf 100644 --- a/progit/static/progit.css +++ b/progit/static/progit.css @@ -446,3 +446,8 @@ th.month .ui-button-text { min-width: 500px; min-height: 120px; } + +#ssh_key { + min-width: 500px; + min-height: 120px; +} diff --git a/progit/templates/user_settings.html b/progit/templates/user_settings.html new file mode 100644 index 0000000..c517a80 --- /dev/null +++ b/progit/templates/user_settings.html @@ -0,0 +1,42 @@ +{% extends "master.html" %} +{% from "_formhelper.html" import render_field_in_cell %} + +{% block title %}Settings {{username}}{% endblock %} +{%block tag %}users{% endblock %} + + +{% block content %} + +

Setting {{ user.user }}

+ + + + +{% endblock %}