...
organizationIssueRecord | |||
Method | getHoldCreatorOrganizationIds | ||
---|---|---|---|
Description | Gets the list of Organization Ids who can create Holds using this Issue. | ||
Return | osid.id.IdList | the list of Organization Ids | |
Compliance | mandatory | This method must be implemented. | |
Method | getHoldCreatorOrganizations | ||
Description | Gets the list of Organizations who can create Holds using this Issue. | ||
Return | osid.personnel.OrganizationList | the list of Organizations | |
Errors | OPERATION_FAILED | unable to complete request | |
Compliance | mandatory | This method must be implemented. | |
Method | getHoldUpdaterOrganizationIds | ||
Description | Gets the list of Organization Ids who can update Holds of this Issue. | ||
Return | osid.id.IdList | the list of Organization Ids | |
Compliance | mandatory | This method must be implemented. | |
Method | getHoldUpdaterOrganizations | ||
Description | Gets the list of Organizations who can update Holds of this Issue. | ||
Return | osid.personnel.OrganizationList | the list of Organizations | |
Errors | OPERATION_FAILED | unable to complete request | |
Compliance | mandatory | This method must be implemented. |
With this data the service architect believes she can create the proper Authorizations. But how?
Code Block |
---|
public org.osid.hold.Issue createIssue(org.osid.hold.IssueForm form) {
foreach (org in getHoldCreatorOrganizationIds) {
foreach (person in org) { // insert complexity from first iteration here
createAuthorization(person, function, newIssue);
}
}
....
} |
This doesn't seem right. This is worse than the code from the first iteration. Yes, it's now in the service provider but it fixes the membership such that if the organization changes, the authorization service is out of date.
It appears that the Organization OSID is important but it has no idea about hold authorizations. Resolving the organization above the Hold OSID looks terrible and resolving it within the Hold OSID Provider isn't an improvement. There's only one service left.
It's A Song About Alice