Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7178)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7179)
@@ -43,4 +43,5 @@
 from waeup.sirp.widgets.restwidget import ReSTDisplayWidget
 from waeup.sirp.authentication import get_principal_role_manager
+from waeup.sirp.utils.helpers import get_user_account
 
 grok.context(IWAeUPObject)
@@ -360,7 +361,53 @@
     grok.require('waeup.editUser')
     form_fields = grok.AutoFields(IUserAccount).omit('name', 'roles')
-
-    def label(self):
-        return "My preferences (username = %s)" % self.context.__name__
+    label = u"My Preferences"
+
+    def title(self):
+        return "%s (%s)" % (self.context.title, self.context.__name__)
+
+class MyRolesPage(WAeUPPage):
+    """Display site roles and local roles assigned to officers.
+    """
+    grok.name('my_roles')
+    grok.require('waeup.editUser')
+    grok.context(IUserAccount)
+    grok.template('myrolespage')
+    title = 'Portal Users'
+    label = u"My Roles"
+
+    def title(self):
+        return "%s (%s)" % (self.context.title, self.context.__name__)
+
+    @property
+    def getLocalRoles(self):
+        #import pdb; pdb.set_trace()
+        local_roles = get_user_account(self.request).getLocalRoles()
+        local_roles_userfriendly = {}
+        for local_role in local_roles:
+            role_title = dict(getAllRoles())[local_role].title
+            local_roles_userfriendly[role_title] = local_roles[local_role]
+        return local_roles_userfriendly
+
+    @property
+    def getSiteRoles(self):
+        site_roles = get_user_account(self.request).roles
+        site_roles_userfriendly = []
+        for site_role in site_roles:
+            role_title = dict(getAllRoles())[site_role].title
+            site_roles_userfriendly.append(role_title)
+        return site_roles_userfriendly
+
+class MyStudentsPage(WAeUPPage):
+    """Browse students dynamically assigned to officers.
+    """
+    grok.name('my_students')
+    grok.require('waeup.editUser')
+    grok.context(IUserAccount)
+    grok.template('mystudentspage')
+    title = 'Portal Users'
+    label = u"My Students"
+
+    def title(self):
+        return "%s (%s)" % (self.context.title, self.context.__name__)
 
 #
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/myrolespage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/myrolespage.pt	(revision 7179)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/myrolespage.pt	(revision 7179)
@@ -0,0 +1,22 @@
+<h3 i18n:translate="">My Portal Roles:</h3>
+<span tal:repeat="role view/getSiteRoles">
+  <div tal:content="role" >ROLE</div>
+</span>
+<br /><br />
+<h3 i18n:translate="">My Local Roles:</h3>
+<table>
+  <tr tal:repeat="role view/getLocalRoles">
+    <td valign="top" ><span tal:content="role" >ROLE</span>:</td>
+    <td>
+      <span tal:repeat="object python:view.getLocalRoles[role]">
+      <a tal:attributes="href python:view.url(object)"
+         tal:content="python:view.url(object)" >OBJECT
+      </a>
+      <br />
+      </span>
+    </td>
+  </tr>
+</table>
+
+
+
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/mystudentspage.pt
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/mystudentspage.pt	(revision 7179)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/mystudentspage.pt	(revision 7179)
@@ -0,0 +1,3 @@
+<h2 i18n:translate=""
+tal:condition="view/label"
+tal:content="view/label">Label</h2>
Index: /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py
===================================================================
--- /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7178)
+++ /main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py	(revision 7179)
@@ -346,4 +346,34 @@
         return
 
+class MyRoles(LeftSidebarLink):
+    """A link to display site and local roles.
+    """
+    grok.order(8)
+    grok.require('waeup.Public')
+    title = u'My Roles'
+    icon = ''
+
+    @property
+    def url(self):
+        account_object = get_user_account(self.request)
+        if account_object:
+            return self.view.url(account_object) + '/my_roles'
+        return
+
+class MyStudents(LeftSidebarLink):
+    """A link to list students dynamically assigned to officers.
+    """
+    grok.order(9)
+    grok.require('waeup.Public')
+    title = u'My Students'
+    icon = ''
+
+    @property
+    def url(self):
+        account_object = get_user_account(self.request)
+        if account_object:
+            return self.view.url(account_object) + '/my_students'
+        return
+
 #
 # Manage ("Edit settings") actions...
