Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-5400

GradebookService doesn't provide external ID namespaces for its clients

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: CLOSED
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.2.0, 2.2.1, 2.2.2, 2.2.3
    • Fix Version/s: 2.3.1
    • Component/s: Gradebook Classic
    • Labels:
      None

      Description

      The gradebook service makes use of an externally provided identifier to allow its clients to distinguish assignments. The external id must be unique. It is possible that more than one client may attempt to use the same identifier, in which case only the first client will be allowed to add the assessment to the gradebook.

      Clients may misinterpret a ConflictingExternalIdException to mean that they have already added their assessment to the gradebook. This is not necessarily the case, since it is possible that another client has simply "taken" that external id. This risk is mitigated by the widespread use of the sakai ID service, which should keep external ID collisions to a minimum.

      The best solution for this issue is for gradebook service clients to keep track of whether they have successfully inserted the assessment into the gradebook rather than relying on a ConflictingExternalIdException to indicate whether they've already added the assessment.

      Another solution is to change the API to scope each query to a particular client. This would involve changes such as:

      removeExternalAssessment(String gradebookUid, String externalId)
      becomes
      removeExternalAssessment(String gradebookUid, String externalId, String clientId)

      and

      updateExternalAssessmentScores(String gradebookUid, String externalId, Map studentUidsToScores)
      becomes
      updateExternalAssessmentScores(String gradebookUid, String externalId, String clientId, Map studentUidsToScores)

        Gliffy Diagrams

          Zeplin

            Attachments

              Activity

                People

                Assignee:
                oheyer Oliver Heyer (Inactive)
                Reporter:
                jholtzman Josh Holtzman (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:

                    Git Integration