Analysis of EID and ID Usage
Under development
So far, this just provides a background on where the calls are occurring in the code. The section immediately below is the beginnings of
a higher level analysis of what tools show which kinds of ids.
Presentation-Layer Visibility of DisplayIds and Eids
View |
Eids |
DisplayIds |
Explanation |
---|---|---|---|
Grade Book |
 |
Need to check this one |
|
Portal Bug Report |
 |
Looks like it shows the eid on screen to that user and then mails it to us. |
|
Roster |
 |
Each student's eid is visible alongside his/her name for the instructor AND THE OTHER STUDENTS to see |
|
RWiki |
 |
Each page shows who last modified it, format: First Last (DisplayID) |
|
Samigo |
 |
Student eids are displayed on the Scores and Questions pages alongside the student's full name (visible to instructor) |
|
Site Info |
 |
As far as I can tell the only ids shown here are DisplayIds, including Student DisplayIds |
|
SU Tool |
 |
The user logs in with his/her own Eid |
|
WebDav |
 |
The user connects via his/her own Eid and it's that Eid that's displayed under the "Upload/Download Multiple Resources" |
|
Chat |
Eids?? |
DisplayIds?? |
Displays first name lastname |
Message Center |
Eids?? |
DisplayIds?? |
Displays kerberos id in 2.1.x |
Gradebook |
Eids?? |
DisplayIds?? |
Displays kerberos id in 2.1.x in column labeled Student ID |
A summary of the usage of EIDs in Sakai 2.3 Tools
Calls to UserDirectoryProvider.getUser() by Class
Class |
Method |
---|---|
edu.amc.sakai.user.JLDAPDirectoryProvider |
getUsers(Collection) |
es.udl.asic.user.OpenLdapDirectoryProvider |
getUsers(Collection) |
org.sakaiproject.component.umsert.user.IMSEntUserDirectoryProvider |
getUsers(Collection) |
org.sakaiproject.component.kerberos.user.KerberosUserDirectoryProvider |
findUserByEmail(UserEdit, String) |
org.sakaiproject.component.kerberos.user.KerberosUserDirectoryProvider |
getUsers(Collection) |
org.sakaiproject.provider.ucd.impl.UserDirectoryProviderImpl |
findUserByEmail(UserEdit, String) |
org.sakaiproject.provider.ucd.impl.UserDirectoryProviderImpl |
getUsers(Collection) |
org.sakaiproject.provider.user.FilterUserDirectoryProvider |
getUser(UserEdit) |
org.sakaiproject.provider.user.SampleUserDirectoryProvider |
findUserByEmail(UserEdit, String) |
org.sakaiproject.provider.user.SampleUserDirectoryProvider |
findUsersByEmail(String, UserFactory) |
org.sakaiproject.provider.user.SampleUserDirectoryProvider |
getUsers(Collection) |
org.sakaiproject.user.impl.BaseUserDirectoryService |
getUser(String) |
org.sakaiproject.user.impl.BaseUserDirectoryService |
getUserId(String) |
Calls to UserDirectoryService.getUserId by Class
Class |
Method |
---|---|
org.sakaiproject.user.impl.BaseUserDirectoryService |
findUsersByEmail(String) |
org.sakaiproject.user.impl.BaseUserDirectoryService |
getUsersByEid(String) |
Calls to User.getEid() by Class – ignoring the Classes listed above
Class |
Method |
Tool |
---|---|---|
org.sakaiproject.component.app.profile.ProfileManagerImpl |
getEnterpriseIdByAgentUuid(String) |
Profile |
org.sakaiproject.component.app.roster.RosterManagerImpl |
createParticipantByUser(User) |
Roster |
org.sakaiproject.content.tool.ResourcesAction |
buildWebdavContext(VelocityPortlet, Context, RunData, SessionState) |
WebDav |
org.sakaiproject.metaobj.security.impl.sakai.SecurityBase |
morphAgent(User) |
N/A |
org.sakaiproject.site.tool.SiteAction |
doAdd_participant(RunData) |
SiteTool |
org.sakaiproject.site.tool.SiteAction |
sendSiteRequest(SessionState, String, int, List) |
SiteTool |
org.sakaiproject.tool.assessment.integration.helper.integrated.AgentHelperImpl |
getEid(String) |
Samigo Services |
org.sakaiproject.tool.assessment.integration.helper.integrated.AgentHelperImpl |
getEidById(String) |
Samigo Services |
org.sakaiproject.tool.su.SuTool |
su() |
SU Tool |
org.sakaiproject.user.tool.UsersAction |
doSave(RunData, Content) |
User Tool |
org.sakaiproject.util.ErrorReporter |
logAndMail(String...) |
Portal Bug Report |
Calls to User.getDisplayId() by Class
Class |
Method |
Tool |
---|---|---|
org.sakaiproject.assignment.impl.BaseAssignmentService |
getGradesSpreadsheet(String) |
Assignments |
org.sakaiproject.authz.impl.BaseMember |
getUserDisplayId() |
N/A |
org.sakaiproject.component.section.facade.impl.sakai21.SakaiUtil |
convertUser(User) |
N/A |
org.sakaiproject.event.impl.UsageSessionServiceAdapter.BaseUsageSession |
getUserDisplayId() |
N/A |
org.sakaiproject.site.impl.BaseSiteService |
getEntityDescription(Reference) |
N/A |
org.sakaiproject.site.tool.SiteAction.Participant |
getDisplayId() |
SiteTool |
uk.ac.cam.caret.sakai.rwiki.utils.UserDisplayHelper |
formatDisplayName(String, String) |
RWiki |
Potential exposed presentation of Eids
Tool |
Explanation |
---|---|
Profile |
 |
Roster |
 |
WebDav |
 |
SiteTool |
 |
Samigo |
 |
SU Tool |
 |
Portal BugReport |
 |
Exposed presentation of DisplayIds
Tool |
Explanation |
---|---|
Assignments |
 |
SiteTool |
 |
RWiki |
Each page shows who last modified it, format: First Last (DisplayID) |
Some explanation of how userId is supplied for a provided user (in answer to Jon's question)
public String getUserId(String eid) throws UserNotDefinedException { eid = cleanEid(eid); // first, check our map String id = m_storage.checkMapForId(eid); if (id != null) return id; // if we don't have an id yet for this eid, and there's a provider that recognizes this eid, allocate an id if (m_provider != null) { // allocate the id to use if this succeeds id = assureUuid(null, eid); // make a new edit to hold the provider's info, hoping it will be filled in BaseUserEdit user = new BaseUserEdit((String) null); user.m_id = id; user.m_eid = eid; // check with the provider if (m_provider.getUser(user)) { // record the id -> eid mapping (could possibly fail if somehow this eid was mapped since our test above) m_storage.putMap(user.getId(), user.getEid()); return user.getId(); } } // not found throw new UserNotDefinedException(eid); }
Version |
Author |
Date |
---|---|---|
1.0 |
James Renfro |
12/01/2006 |
1.1 |
James Renfro |
12/20/2006 |