Hi All,First of all, thanks for your time to help looking into the problems we're having. We are using Valence C# sdk to realize SSO with D2L and are having some issue with respect to the needed data, its validity and where we can obtain them1. User email, can we assume that the data obtained from D2L is always validated email address? It doesn't seem that it is even a required field in the User Profile
2. User Role, I can't find an API to obtain the current user's roles. The closest I can find is listing of all roles. We need this to differentiate different type of user when creating the accounts in our system.(there's method in the d2lws but not in valence?)
3. School Id, we need to extract the school Id associate with the student/teacher/account. So far it seems like we need to extract this information from the orgunit enrolment, however the only available method I can see isWhich doesn't provide ability to filter the enrolments to only return the course offering enrolment (which I'm told will contain the school Id that I can extract from the course Id)
4. I'm told that d2l doesn't store student grade information, is this true?
- Operate within the functional constraints that the end user is afforded by the LMS. This generally requires a user interaction pattern that is exploratory and gracefully tolerant of constraint discovery. A client app can operate within the discoverable boundary of what an end user is allowed to do bands prevented from doing and gracefully degrade or enhance functionality accordingly. For certain types of client apps, this is perfectly sufficient.
- Operate on some level as a service to service integration where the client app has an "identity" as a special service user account; this requires the back end system to provision a special user account that exists to provide an operational context for the client app's functionality, and then the sharing of the required authentication tokens to the client app for caching and use going forward. In these cases, the API client app can make expanded use of the back end service's functionality, but then must take special care not to let the results of that activity bleed over into the abilities conveyed to the client app's end user, for security and privacy reasons.
In general if your client system needs more access to data typically afforded only to administrative users, the second of these approaches could be possible.