You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2014/09/12 12:32:28 UTC
[1/5] git commit: [#7657] ticket:649 Display basic user info
Repository: allura
Updated Branches:
refs/heads/je/42cc_7657 [created] 64e50fd56
[#7657] ticket:649 Display basic user info
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/0cc072f2
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/0cc072f2
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/0cc072f2
Branch: refs/heads/je/42cc_7657
Commit: 0cc072f25a937471f52eda3560938c305167ec58
Parents: 0855719
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Sep 12 11:36:29 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri Sep 12 11:36:29 2014 +0300
----------------------------------------------------------------------
Allura/allura/controllers/site_admin.py | 15 ++++
Allura/allura/model/auth.py | 5 ++
Allura/allura/templates/site_admin.html | 2 +-
.../templates/site_admin_user_details.html | 74 ++++++++++++++++++++
4 files changed, 95 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/0cc072f2/Allura/allura/controllers/site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index 4a96298..9bfb9b4 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -62,6 +62,7 @@ class SiteAdminController(object):
def __init__(self):
self.task_manager = TaskManagerController()
c.site_admin_sidebar_menu = self.sidebar_menu()
+ self.user = AdminUserDetailsController()
def _check_security(self):
with h.push_context(config.get('site_admin_project', 'allura'),
@@ -470,6 +471,20 @@ class StatsController(object):
return dict(neighborhoods=neighborhoods)
+class AdminUserDetailsController(object):
+
+ @expose('jinja:allura:templates/site_admin_user_details.html')
+ def _default(self, username):
+ user = M.User.by_username(username)
+ if not user:
+ raise HTTPNotFound()
+ projects = user.my_projects().all()
+ return {
+ 'user': user,
+ 'projects': projects,
+ }
+
+
class StatsSiteAdminExtension(SiteAdminExtension):
controllers = {'stats': StatsController}
http://git-wip-us.apache.org/repos/asf/allura/blob/0cc072f2/Allura/allura/model/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index b7ea34b..48f04f5 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -22,6 +22,7 @@ import logging
import urllib
import hmac
import hashlib
+import calendar
from urlparse import urlparse
from email import header
from hashlib import sha256
@@ -689,6 +690,10 @@ class User(MappedClass, ActivityNode, ActivityObject):
url=h.absurl(self.url()),
)
+ def registration_date(self):
+ p = plugin.AuthenticationProvider.get(request)
+ return p.user_registration_date(self)
+
class OldProjectRole(MappedClass):
http://git-wip-us.apache.org/repos/asf/allura/blob/0cc072f2/Allura/allura/templates/site_admin.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin.html b/Allura/allura/templates/site_admin.html
index d83f06e..0617da6 100644
--- a/Allura/allura/templates/site_admin.html
+++ b/Allura/allura/templates/site_admin.html
@@ -20,7 +20,7 @@
{% from 'allura:templates/jinja_master/sidebar_menu.html' import sidebar_item with context %}
{% set hide_left_bar=False %}
-{% if page == 'new_projects' %}
+{% if page in ['new_projects', 'user_details'] %}
{% set hide_left_bar=True %}
{% endif %}
{% extends g.theme.master %}
http://git-wip-us.apache.org/repos/asf/allura/blob/0cc072f2/Allura/allura/templates/site_admin_user_details.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin_user_details.html b/Allura/allura/templates/site_admin_user_details.html
new file mode 100644
index 0000000..155fa20
--- /dev/null
+++ b/Allura/allura/templates/site_admin_user_details.html
@@ -0,0 +1,74 @@
+{#-
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-#}
+{% set page = 'user_details' %}
+{% extends 'allura:templates/site_admin.html' %}
+
+{% block title %}User Details{% endblock %}
+{% block header %}User Details{% endblock %}
+
+{% block content %}
+ {% block general_info %}
+ <div class="grid-23">
+ <fieldset>
+ <legend>General</legend>
+ <ul>
+ <li>Username: {{ user.username }}</li>
+ <li>Full name: {{ user.get_pref('display_name') }}</li>
+ <li>Registered: {{ user.registration_date() }}</li>
+ </ul>
+ </fieldset>
+ </div>
+ {% endblock general_info %}
+
+ {% block session_info %}
+ <div class="grid-23">
+ <fieldset>
+ <legend>Session</legend>
+ <h3>Last login</h3>
+ <ul>
+ <li>Date: {{ user.last_access.login_date }}</li>
+ <li>IP: {{ user.last_access.login_ip }}</li>
+ <li>UA: {{ user.last_access.login_ua }}</li>
+ </ul>
+ <h3>Last page access</h3>
+ <ul>
+ <li>Date: {{ user.last_access.session_date }}</li>
+ <li>IP: {{ user.last_access.session_ip }}</li>
+ <li>UA: {{ user.last_access.session_ua }}</li>
+ </ul>
+ </fieldset>
+ </div>
+ {% endblock session_info %}
+
+ {% block extra_info %}
+ {% endblock extra_info %}
+
+ {% block user_projects %}
+ <div class="grid-23">
+ <fieldset>
+ <legend>Projects</legend>
+ <ul>
+ {% for p in projects %}
+ <li><a href="{{ p.url() }}">{{p.name}}</a></li>
+ {% endfor %}
+ </ul>
+ </fieldset>
+ </div>
+ {% endblock user_projects %}
+{% endblock %}
[4/5] git commit: [#7657] ticket:649 Add link to user profile
Posted by je...@apache.org.
[#7657] ticket:649 Add link to user profile
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/030dfdda
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/030dfdda
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/030dfdda
Branch: refs/heads/je/42cc_7657
Commit: 030dfdda82fbb382ef42987db4ed11929cbe79bd
Parents: 1657505
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Sep 12 11:52:25 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri Sep 12 11:52:25 2014 +0300
----------------------------------------------------------------------
Allura/allura/templates/site_admin_user_details.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/030dfdda/Allura/allura/templates/site_admin_user_details.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin_user_details.html b/Allura/allura/templates/site_admin_user_details.html
index c4f0965..b69ab06 100644
--- a/Allura/allura/templates/site_admin_user_details.html
+++ b/Allura/allura/templates/site_admin_user_details.html
@@ -28,7 +28,7 @@
<fieldset>
<legend>General</legend>
<ul>
- <li>Username: {{ user.username }}</li>
+ <li>Username: {{ user.username }} (<a href="{{ user.url() }}">Go to profile page</a>)</li>
<li>Full name: {{ user.get_pref('display_name') }}</li>
<li>Registered: {{ user.registration_date() }} ({{ h.ago(user.registration_date()) }})</li>
</ul>
[5/5] git commit: [#7657] ticket:649 Add simple test
Posted by je...@apache.org.
[#7657] ticket:649 Add simple test
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/64e50fd5
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/64e50fd5
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/64e50fd5
Branch: refs/heads/je/42cc_7657
Commit: 64e50fd56bd0723ffb47a00b024b211f164ca100
Parents: 030dfdd
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Sep 12 12:37:56 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri Sep 12 12:37:56 2014 +0300
----------------------------------------------------------------------
.../allura/tests/functional/test_site_admin.py | 35 ++++++++++++++++++++
1 file changed, 35 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/64e50fd5/Allura/allura/tests/functional/test_site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index ab1ffc4..a6ed3d1 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -17,6 +17,7 @@
# under the License.
import json
+import datetime as dt
from mock import patch, MagicMock
from nose.tools import assert_equal, assert_in, assert_not_in
@@ -263,6 +264,40 @@ class TestProjectsSearch(TestController):
'private', 'url', 'Details'])
+class TestUserDetails(TestController):
+
+ def test_404(self):
+ self.app.get('/nf/admin/user/does-not-exist/', status=404)
+
+ def test_general_info(self):
+ user = M.User.by_username('test-admin')
+ user.registration_date = lambda: dt.datetime(2014, 9, 1, 9, 9, 9)
+ user.last_access = {'login_date': dt.datetime(2014, 9, 2, 6, 6, 6),
+ 'login_ua': 'browser of the future 1.0',
+ 'login_ip': '8.8.8.8',
+ 'session_date': dt.datetime(2014, 9, 12, 6, 6, 6),
+ 'session_ua': 'browser of the future 1.1',
+ 'session_ip': '7.7.7.7'}
+ r = self.app.get('/nf/admin/user/test-admin/')
+ # general info
+ assert_in('Username: test-admin', r)
+ assert_in('Full name: Test Admin', r)
+ assert_in('Registered: 2014-09-01 09:09:09', r)
+ # session info
+ assert_in('Date: 2014-09-02 06:06:06', r)
+ assert_in('IP: 8.8.8.8', r)
+ assert_in('UA: browser of the future 1.0', r)
+ assert_in('Date: 2014-09-12 06:06:06', r)
+ assert_in('IP: 7.7.7.7', r)
+ assert_in('UA: browser of the future 1.1', r)
+ # list of projects
+ projects = r.html.findAll('fieldset')[-1]
+ projects = [e.getText() for e in projects.findAll('li')]
+ assert_in('Test 2', projects)
+ assert_in('Test Project', projects)
+ assert_in('Adobe project 1', projects)
+
+
@task
def test_task(*args, **kw):
"""test_task doc string"""
[2/5] git commit: [#7657] ticket:649 Move fieldset/legend css to
site_style
Posted by je...@apache.org.
[#7657] ticket:649 Move fieldset/legend css to site_style
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/9a20f384
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/9a20f384
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/9a20f384
Branch: refs/heads/je/42cc_7657
Commit: 9a20f3849ca5e6bb20a91a8a602bb07ddb970a0d
Parents: 0cc072f
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Sep 12 11:39:55 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri Sep 12 11:39:55 2014 +0300
----------------------------------------------------------------------
Allura/allura/nf/allura/css/site_style.css | 14 ++++++++++++++
Allura/allura/templates/user_prefs.html | 13 -------------
2 files changed, 14 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/9a20f384/Allura/allura/nf/allura/css/site_style.css
----------------------------------------------------------------------
diff --git a/Allura/allura/nf/allura/css/site_style.css b/Allura/allura/nf/allura/css/site_style.css
index 8f8d5ab..963f071 100644
--- a/Allura/allura/nf/allura/css/site_style.css
+++ b/Allura/allura/nf/allura/css/site_style.css
@@ -3497,3 +3497,17 @@ ul.dropdown ul li a:hover {
top: 10px;
}
.strikethrough { text-decoration: line-through; }
+
+fieldset {
+ margin-bottom: 2em;
+ border: 1px solid silver;
+ padding: 8px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+legend {
+ margin: .2em;
+ padding: .2em;
+ font-size: 1.5em;
+}
http://git-wip-us.apache.org/repos/asf/allura/blob/9a20f384/Allura/allura/templates/user_prefs.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/user_prefs.html b/Allura/allura/templates/user_prefs.html
index fec5dcd..6fb2fb1 100644
--- a/Allura/allura/templates/user_prefs.html
+++ b/Allura/allura/templates/user_prefs.html
@@ -180,19 +180,6 @@
{% block extra_css %}
{{ super() }}
<style>
- fieldset {
- margin-bottom: 2em;
- border: 1px solid silver;
- padding: 8px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border-radius: 4px;
- }
- legend {
- margin: .2em;
- padding: .2em;
- font-size: 1.5em;
- }
.pad hr {
margin: 15px 10px;
width: 860px;
[3/5] git commit: [#7657] ticket:649 Display dates better
Posted by je...@apache.org.
[#7657] ticket:649 Display dates better
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/1657505e
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/1657505e
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/1657505e
Branch: refs/heads/je/42cc_7657
Commit: 1657505e4e15a4a927d0727a18b8e4620a43563f
Parents: 9a20f38
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Sep 12 11:50:23 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Fri Sep 12 11:50:23 2014 +0300
----------------------------------------------------------------------
Allura/allura/model/auth.py | 7 +++++--
Allura/allura/templates/site_admin_user_details.html | 6 +++---
2 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/1657505e/Allura/allura/model/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index 48f04f5..f5f9cfb 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -692,8 +692,11 @@ class User(MappedClass, ActivityNode, ActivityObject):
def registration_date(self):
p = plugin.AuthenticationProvider.get(request)
- return p.user_registration_date(self)
-
+ d = p.user_registration_date(self)
+ # provider's user_registration_date returns aware datetime (in UTC)
+ # but we're using naive UTC time everywhere
+ d = datetime.utcfromtimestamp(calendar.timegm(d.utctimetuple()))
+ return d
class OldProjectRole(MappedClass):
http://git-wip-us.apache.org/repos/asf/allura/blob/1657505e/Allura/allura/templates/site_admin_user_details.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/site_admin_user_details.html b/Allura/allura/templates/site_admin_user_details.html
index 155fa20..c4f0965 100644
--- a/Allura/allura/templates/site_admin_user_details.html
+++ b/Allura/allura/templates/site_admin_user_details.html
@@ -30,7 +30,7 @@
<ul>
<li>Username: {{ user.username }}</li>
<li>Full name: {{ user.get_pref('display_name') }}</li>
- <li>Registered: {{ user.registration_date() }}</li>
+ <li>Registered: {{ user.registration_date() }} ({{ h.ago(user.registration_date()) }})</li>
</ul>
</fieldset>
</div>
@@ -42,13 +42,13 @@
<legend>Session</legend>
<h3>Last login</h3>
<ul>
- <li>Date: {{ user.last_access.login_date }}</li>
+ <li>Date: {{ user.last_access.login_date }} ({{ h.ago(user.last_access.login_date) }})</li>
<li>IP: {{ user.last_access.login_ip }}</li>
<li>UA: {{ user.last_access.login_ua }}</li>
</ul>
<h3>Last page access</h3>
<ul>
- <li>Date: {{ user.last_access.session_date }}</li>
+ <li>Date: {{ user.last_access.session_date }} ({{ h.ago(user.last_access.session_date) }})</li>
<li>IP: {{ user.last_access.session_ip }}</li>
<li>UA: {{ user.last_access.session_ua }}</li>
</ul>