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)
"org.sakaiproject.user.impl.BaseUserDirectoryService"
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 |