Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ public class CanvasConstants {
public static final String ACCOUNT_ID="1";
public static final String MASQUERADE_SIS_USER="sis_user_id";
public static final String MASQUERADE_CANVAS_USER="canvas_user_id";
public static final String MASQUERADE_LTI_USER="lti_1_3_id";

public static final String URLENCODING_TYPE = "UTF-8";
}
12 changes: 12 additions & 0 deletions src/main/java/edu/ksu/canvas/impl/BaseImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ public READERTYPE readAsCanvasUser(String masqueradeAs) {
public READERTYPE readAsSisUser(String masqueradeAs) {
return (READERTYPE) readAsUser(masqueradeAs, CanvasConstants.MASQUERADE_SIS_USER);
}

@Override
public READERTYPE readAsLtiUser(String masqueradeAs) {
return (READERTYPE) readAsUser(masqueradeAs, CanvasConstants.MASQUERADE_LTI_USER);
}

private READERTYPE readAsUser(String masqueradeAs, String masqueradeType){
this.masqueradeAs = masqueradeAs;
Expand All @@ -114,6 +119,11 @@ public WRITERTYPE writeAsCanvasUser(String masqueradeAs) {
public WRITERTYPE writeAsSisUser(String masqueradeAs) {
return (WRITERTYPE) writeAsUser(masqueradeAs, CanvasConstants.MASQUERADE_SIS_USER);
}

@Override
public WRITERTYPE writeAsLtiUser(String masqueradeAs) {
return (WRITERTYPE) writeAsUser(masqueradeAs, CanvasConstants.MASQUERADE_LTI_USER);
}

private WRITERTYPE writeAsUser(String masqueradeAs, String masqueradeType){
this.masqueradeAs = masqueradeAs;
Expand All @@ -139,6 +149,8 @@ protected String buildCanvasUrl(String canvasMethod, Map<String, List<String>> p
allParameters.put("as_user_id", Arrays.asList(masqueradeAs));
} else if(CanvasConstants.MASQUERADE_SIS_USER.equals(masqueradeType)) {
allParameters.put("as_user_id", Arrays.asList("sis_user_id:" + masqueradeAs));
} else if(CanvasConstants.MASQUERADE_LTI_USER.equals(masqueradeType)) {
allParameters.put("as_user_id", Arrays.asList("lti_1_3_id:" + masqueradeAs));
}
//Since masquerading options are added on a per-call basis, blank them out after using them for this call
masqueradeAs = null;
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/edu/ksu/canvas/interfaces/CanvasReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,7 @@ public interface CanvasReader<T, READERTYPE extends CanvasReader> {
READERTYPE readAsCanvasUser(String masqueradeAs);

READERTYPE readAsSisUser(String masqueradeAs);

READERTYPE readAsLtiUser(String masqueradeAs);

}
2 changes: 2 additions & 0 deletions src/main/java/edu/ksu/canvas/interfaces/CanvasWriter.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ public interface CanvasWriter<T, WRITERTYPE extends CanvasWriter> {
WRITERTYPE writeAsCanvasUser(String masqueradeAs);

WRITERTYPE writeAsSisUser(String masqueradeAs);

WRITERTYPE writeAsLtiUser(String masqueradeAs);

}
13 changes: 13 additions & 0 deletions src/test/java/edu/ksu/canvas/tests/course/UserManagerUTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,5 +70,18 @@ public void testCanvasUserMasqueradeCreateUser() throws IOException {
Assert.assertEquals("somestring4",response.get().getName());
Assert.assertNotNull(response.get().getId());
}
@Test
public void testLtiUserMasqueradeCreateUser() throws IOException {
User user = new User();
String userId = "899123456";
user.setName("somestring4");
user.setLoginId("somestring4");
String url = baseUrl + "/api/v1/accounts/1/users?as_user_id=" + CanvasConstants.MASQUERADE_LTI_USER + ":" + userId;
fakeRestClient.addSuccessResponse(url, "SampleJson/CreateUserResponse.json");
Optional<User> response = userWriter.writeAsLtiUser(userId).createUser(user);
System.out.println(response.toString());
Assert.assertEquals("somestring4",response.get().getName());
Assert.assertNotNull(response.get().getId());
}
}

22 changes: 12 additions & 10 deletions src/test/java/edu/ksu/canvas/tests/user/UserRetrieverUTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import edu.ksu.canvas.interfaces.UserWriter;
import edu.ksu.canvas.model.User;
import edu.ksu.canvas.net.FakeRestClient;
import edu.ksu.canvas.net.Response;
import edu.ksu.canvas.requestOptions.GetUsersInAccountOptions;
import edu.ksu.canvas.requestOptions.GetUsersInCourseOptions;
import edu.ksu.canvas.util.CanvasURLBuilder;
Expand Down Expand Up @@ -38,9 +37,6 @@ public void setupData() {

@Test
public void testListCourseQuizzes() throws Exception {
Response notErroredResponse = new Response();
notErroredResponse.setErrorHappened(false);
notErroredResponse.setResponseCode(200);
String url = CanvasURLBuilder.buildCanvasUrl(baseUrl, apiVersion,
"courses/" + someCourseId + "/users", Collections.emptyMap());
fakeRestClient.addSuccessResponse(url, "SampleJson/user/UserList.json");
Expand All @@ -54,9 +50,6 @@ public void testListCourseQuizzes() throws Exception {
@Test
public void testSisUserMasqueradeListCourseQuizzes() throws Exception {
String someUserId = "8991123123";
Response notErroredResponse = new Response();
notErroredResponse.setErrorHappened(false);
notErroredResponse.setResponseCode(200);
String url = baseUrl + "/api/v1/courses/" + someCourseId + "/users?as_user_id="
+ CanvasConstants.MASQUERADE_SIS_USER + ":" + someUserId;
fakeRestClient.addSuccessResponse(url, "SampleJson/user/UserList.json");
Expand All @@ -70,9 +63,6 @@ public void testSisUserMasqueradeListCourseQuizzes() throws Exception {
@Test
public void testCanvasUserMasqueradeListCourseQuizzes() throws Exception {
String someUserId = "8991123123";
Response notErroredResponse = new Response();
notErroredResponse.setErrorHappened(false);
notErroredResponse.setResponseCode(200);
String url = baseUrl + "/api/v1/courses/" + someCourseId + "/users?as_user_id=" + someUserId;
fakeRestClient.addSuccessResponse(url, "SampleJson/user/UserList.json");

Expand All @@ -82,6 +72,18 @@ public void testCanvasUserMasqueradeListCourseQuizzes() throws Exception {
Assert.assertTrue(users.stream().map(User::getName).filter("Student Number 2"::equals).findFirst().isPresent());
}

@Test
public void testLtiUserMasqueradeListCourseQuizzes() throws Exception {
String someUserId = "8991123123";
String url = baseUrl + "/api/v1/courses/" + someCourseId + "/users?as_user_id=" + CanvasConstants.MASQUERADE_LTI_USER + ":" + someUserId;
fakeRestClient.addSuccessResponse(url, "SampleJson/user/UserList.json");

List<User> users = userReader.readAsLtiUser(someUserId).getUsersInCourse(new GetUsersInCourseOptions(someCourseId));
Assert.assertEquals(2, users.size());
Assert.assertTrue(users.stream().map(User::getName).filter("Student Number 1"::equals).findFirst().isPresent());
Assert.assertTrue(users.stream().map(User::getName).filter("Student Number 2"::equals).findFirst().isPresent());
}

@Test
public void testShowUserDetailsByUserId() throws Exception {
int userId = 20;
Expand Down