diff options
-rw-r--r-- | mediagoblin/edit/views.py | 17 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/edit/edit_profile.html | 4 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/root.html | 1 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/media.html | 3 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/user.html | 4 |
5 files changed, 23 insertions, 6 deletions
diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 5a7aa4bd..64fa0eab 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -74,7 +74,18 @@ def edit_media(request, media): @require_active_login def edit_profile(request): - user = request.user + # admins may edit any user profile given a username in the querystring + edit_username = request.GET.get('username') + if request.user['is_admin'] and request.user['username'] != edit_username: + user = request.db.User.find_one({'username': edit_username}) + # No need to warn again if admin just submitted an edited profile + if request.method != 'POST': + messages.add_message( + request, messages.WARNING, + 'You are editing a user\'s profile. Proceed with caution.') + else: + user = request.user + form = forms.EditProfileForm(request.POST, url = user.get('url'), bio = user.get('bio')) @@ -87,7 +98,9 @@ def edit_profile(request): messages.add_message(request, messages.SUCCESS, 'Profile edited!') - return redirect(request, "mediagoblin.edit.profile") + return redirect(request, + "mediagoblin.edit.profile", + username=edit_username) return render_to_response( request, diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index 7efd0ee3..cf228977 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -21,8 +21,8 @@ {% block mediagoblin_content %} - <form action="{{ request.urlgen('mediagoblin.edit.profile', - user=user.username) }}" + <form action="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{ + user['username'] }}" method="POST" enctype="multipart/form-data"> <div class="grid_6 prefix_1 suffix_1 edit_box form_box"> <h1>Editing {{ user['username'] }}'s profile</h1> diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index e29abd51..5b744999 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -23,7 +23,6 @@ {% if request.user %} <p> <a href="{{ request.urlgen('mediagoblin.submit.start') }}">Submit an item</a> - <a href="{{ request.urlgen('mediagoblin.edit.profile') }}">Edit profile</a> </p> {% else %} <p> diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 142082ea..85ba985c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -95,7 +95,8 @@ {% include "mediagoblin/utils/prev_next.html" %} <h3>Sidebar content here!</h3> <p> - {% if media['uploader'] == request.user['_id'] %} + {% if media['uploader'] == request.user['_id'] or + request.user['is_admin'] %} <p> <a href="{{ request.urlgen('mediagoblin.edit.edit_media', user= media.uploader().username, diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index b884a1f5..da8db261 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -27,6 +27,10 @@ {% block mediagoblin_content -%} {% if user %} <h1>{{ user.username }}'s profile</h1> + {% if request.user == user.username or request.user['is_admin'] %} + <a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{ + user.username }}"> Edit</a> + {% endif %} {% include "mediagoblin/utils/profile.html" %} |