diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java index 8904dcbd29ce..cb161f197130 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java @@ -401,11 +401,11 @@ public class StudyProjectGenerator { // Supposed to be called under progress public List getCourses(boolean force) { - if (OUR_COURSES_DIR.exists()) { + if (OUR_COURSES_DIR.exists() && !force) { myCourses = getCoursesFromCache(); } if (force || myCourses.isEmpty()) { - myCourses = execCancelable(EduStepicConnector::getCourses); + myCourses = execCancelable(() -> EduStepicConnector.getCourses(myUser)); flushCache(myCourses); } if (myCourses.isEmpty()) { diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java index 6037be15c049..e25605116986 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java @@ -57,11 +57,11 @@ public class EduStepicConnector { } @NotNull - public static List getCourses() { + public static List getCourses(@Nullable StepicUser user) { try { List result = new ArrayList<>(); int pageNumber = 1; - while (addCoursesFromStepic(result, pageNumber)) { + while (addCoursesFromStepic(user, result, pageNumber)) { pageNumber += 1; } return result; @@ -117,7 +117,7 @@ public class EduStepicConnector { return null; } - private static boolean addCoursesFromStepic(List result, int pageNumber) throws IOException { + private static boolean addCoursesFromStepic(@Nullable StepicUser user, List result, int pageNumber) throws IOException { final URI url; try { url = new URIBuilder(EduStepicNames.COURSES).addParameter("is_idea_compatible", "true"). @@ -127,8 +127,13 @@ public class EduStepicConnector { LOG.error(e.getMessage()); return false; } - final StepicWrappers.CoursesContainer coursesContainer = EduStepicClient.getFromStepic(url.toString(), - StepicWrappers.CoursesContainer.class); + final StepicWrappers.CoursesContainer coursesContainer; + if (user != null) { + coursesContainer = EduStepicAuthorizedClient.getFromStepic(url.toString(), StepicWrappers.CoursesContainer.class, user); + } + else { + coursesContainer = EduStepicClient.getFromStepic(url.toString(), StepicWrappers.CoursesContainer.class); + } addAvailableCourses(result, coursesContainer); return coursesContainer.meta.containsKey("has_next") && coursesContainer.meta.get("has_next") == Boolean.TRUE; } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicUpdater.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicUpdater.java index 6df1f24f8a84..2fe6b05c28e3 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicUpdater.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicUpdater.java @@ -47,7 +47,7 @@ public class EduStepicUpdater { private static ActionCallback updateCourseList() { ActionCallback callback = new ActionCallback(); ApplicationManager.getApplication().executeOnPooledThread(() -> { - final List courses = EduStepicConnector.getCourses(); + final List courses = EduStepicConnector.getCourses(null); final List cachedCourses = StudyProjectGenerator.getCoursesFromCache(); StudyProjectGenerator.flushCache(courses); StepicUpdateSettings.getInstance().setLastTimeChecked(System.currentTimeMillis()); diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/ui/StudyNewProjectPanel.java b/python/educational-core/student/src/com/jetbrains/edu/learning/ui/StudyNewProjectPanel.java index f177d9d688dc..f6d3df530e20 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/ui/StudyNewProjectPanel.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/ui/StudyNewProjectPanel.java @@ -346,7 +346,7 @@ public class StudyNewProjectPanel extends JPanel implements PanelWithAnchor { final StepicUser stepicUser = StudyUtils.execCancelable(() -> EduStepicAuthorizedClient.login(myLoginPanel.getLogin(), myLoginPanel.getPassword())); - if (stepicUser != null) { + if (stepicUser != null && stepicUser.getAccessToken() != null) { stepicUser.setEmail(myLoginPanel.getLogin()); stepicUser.setPassword(myLoginPanel.getPassword()); myGenerator.myUser = stepicUser;