Index: roster-app/src/java/org/sakaiproject/roster/api/RosterFunctions.java =================================================================== --- roster-app/src/java/org/sakaiproject/roster/api/RosterFunctions.java (revision 84433) +++ roster-app/src/java/org/sakaiproject/roster/api/RosterFunctions.java (working copy) @@ -51,5 +51,7 @@ public static final String ROSTER_FUNCTION_VIEWGROUP = ROSTER_FUNCTION_PREFIX + "viewgroup"; public static final String ROSTER_FUNCTION_VIEWENROLLMENTSTATUS = ROSTER_FUNCTION_PREFIX + "viewenrollmentstatus"; public static final String ROSTER_FUNCTION_VIEWPROFILE = ROSTER_FUNCTION_PREFIX + "viewprofile"; + public static final String ROSTER_FUNCTION_VIEWOFFICIALPHOTO = ROSTER_FUNCTION_PREFIX + "viewofficialphoto"; + } Index: roster-app/src/java/org/sakaiproject/roster/impl/SakaiProxyImpl.java =================================================================== --- roster-app/src/java/org/sakaiproject/roster/impl/SakaiProxyImpl.java (revision 84433) +++ roster-app/src/java/org/sakaiproject/roster/impl/SakaiProxyImpl.java (working copy) @@ -164,7 +164,11 @@ if (!registered.contains(RosterFunctions.ROSTER_FUNCTION_VIEWPROFILE)) { functionManager.registerFunction(RosterFunctions.ROSTER_FUNCTION_VIEWPROFILE, true); } + if (!registered.contains(RosterFunctions.ROSTER_FUNCTION_VIEWOFFICIALPHOTO)) { + functionManager.registerFunction(RosterFunctions.ROSTER_FUNCTION_VIEWOFFICIALPHOTO, true); + } + } /** Index: roster-app/src/webapp/js/roster.js =================================================================== --- roster-app/src/webapp/js/roster.js (revision 84433) +++ roster-app/src/webapp/js/roster.js (working copy) @@ -680,7 +680,7 @@ for (var i = 0, j = membership.length; i < j; i++) { membership[i].profileImageUrl = "/direct/profile/" + membership[i].userId + "/image"; if(forceOfficialPicture == true) { - membership[i].profileImageUrl += "/official"; + membership[i].profileImageUrl += "/official?siteId=" + rosterSiteId; } } }