- Aug 07, 2018
-
-
Daniel Gerhardt authored
Implemented a customized WithMockUser and WithMockUserSecurityContextFactory to mock an Authentication with User and UserProfile.
-
Daniel Gerhardt authored
* AuthenticationProvider-agnostic User object allows access to common user attributes: userId, loginId, authProvider, etc. * Auto-create UserProfiles for external accounts * Use userId (instead of loginId) for permission checks * Use custom implementation for Pac4j integration (remove org.pac4j.spring-security-pac4j) * Move authentication logic from controller to service layer * Remove user room role handling * Rename targetDomainType 'session' to 'room'
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Aug 04, 2018
-
-
Daniel Gerhardt authored
Moved PI timer logic to its own service. The implementation for room owner changes has been removed for now.
-
Daniel Gerhardt authored
A new service, repository and entity have been introduced to handle file attachments to other entities. Attachments store meta data about the file. The file upload is not yet implemented. It is planned to abstract the storage handling to allow the support for different storage solutions (local file system, database, cloud).
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jul 09, 2018
-
-
Cast int to double before division to avoid truncation of the division result. Changed corresponding test so that it fails with the old implementation. Cherry-picked and backported from GH-52.
-
- Feb 22, 2018
-
-
Daniel Gerhardt authored
-
- Sep 26, 2017
-
-
Daniel Gerhardt authored
-
- Aug 28, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Implemented a patch method which merges an existing entity with updated properties from a HashMap. A new test dependency spring-security-test has been added.
-
Daniel Gerhardt authored
* Moved classes from `de.thm.arsnova` root package. * New util package * Do not start interface names with `I`. Appended `Impl` to the implementing class instead. * Renamed learning progress classes to score and move them from `.domain` to a new `.services.score` package. * Do not capitalize acronyms in class names: * CASLogoutSuccessHandler -> CasLogoutSuccessHandler * SocketIO* -> Socketio* * Renamed `.socket` package to `.websocket`
-
- Aug 21, 2017
-
-
Daniel Gerhardt authored
-
- Aug 17, 2017
-
-
Daniel Gerhardt authored
-
- Jul 16, 2017
-
-
Daniel Gerhardt authored
-
- Jul 15, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Mosts of the tests were coupled with the old database layer. Additionally, a lot of them were testing simple CRUD operations intead of domain logic. Meaningful tests with proper database mocking have to be written at a later time.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Code for the following domains has been migrated: * VisitedSession * MotdList * Statistics * LearingProgress
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
(Lecturer/Skill)Question has been renamed to Content. Method names have not been touched yet to ease reviewing the changes.
-
Daniel Gerhardt authored
InterposedQuestion has been renamed to Comment. Method names have not been touched yet to ease reviewing the changes.
-
Daniel Gerhardt authored
LoggedIn documents are also handled by the SessionRepository for now.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jul 03, 2017
-
-
Daniel Gerhardt authored
-
- May 24, 2017
-
-
Daniel Gerhardt authored
This improves/fixes compatibility with third-party OAuth APIs.
-
- Apr 25, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Apr 21, 2017
-
-
Daniel Gerhardt authored
All former features of NovaView have been merged into CouchDB4J so it is no longer needed.
-
- Apr 16, 2017
-
-
Daniel Gerhardt authored
The following replacements have been made: * New design document name - New view name: (conditions) keys => values * Full old view name: (conditions) keys => values * content/ - by_sessionid: sessionId => _rev * skill_question/count_by_session: sessionId => doc - by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => _rev * skill_question/by_session_only_id_for_all: (active == 1) sessionId => null * skill_question/flashcard_count_by_session: (questionVariant == "flashcard") sessionId => doc * skill_question/lecture_question_count_by_session: (questionVariant == 'lecture') sessionId => doc * skill_question/lecture_question_ids_by_session_and_subject: (questionVariant == 'lecture') sessionId, subject => _id * skill_question/lecture_question_ids_by_session_for_all: (questionVariant == "flashcard" && active == 1) doc.sessionId, doc.subject, doc.text => {} * skill_question/lecture_question_subjects_by_session: (questionVariant == 'lecture') sessionId => subject * skill_question/preparation_question_count_by_session: (questionVariant == 'preparation') sessionId => doc * skill_question/preparation_question_ids_by_session_and_subject: (questionVariant == 'preparation') sessionId, subject => _id * skill_question/preparation_question_ids_by_session_for_all: (questionVariant == 'preparation' && active == 1) sessionId, subject, text => {} * skill_question/preparation_question_subjects_by_session (questionVariant == "preparation") sessionId => subject - doc_by_sessionid_variant_active: sessionId, questionVariant, active, subject, text.substr() => doc * skill_question/by_session: sessionId, subject => doc * skill_question/by_session_for_all_full: (active == 1) sessionId, subject, text => doc * skill_question/by_session_sorted_by_subject_and_text: sessionID, subject, text => doc * skill_question/flashcard_by_session: (questionVariant == 'flashcard') sessionId, subject, text => doc * skill_question/flashcard_by_session_for_all: (questionVariant == "flashcard" && active == 1) sessionId, subject, text => doc * skill_question/lecture_question_by_session: (questionVariant == 'lecture') sessionId, subject, text => doc * skill_question/lecture_question_by_session_for_all: (questionVariant == 'lecture' && active == 1) sessionId, subject, text => doc * skill_question/preparation_question_by_session: (questionVariant == 'preparation') sessionId, subject, text => doc * skill_question/preparation_question_by_session_for_all: (questionVariant == 'preparation' && doc.active == 1) sessionId, subject, text => doc The following views have been removed: * skill_question/questions_by_ids: _id => doc (use all_docs)
-
- Mar 27, 2017
-
-
Daniel Gerhardt authored
SessionServiceTest.testShouldDeleteAllSessionData fails when run on JDK 8.
-
- Feb 14, 2017
-
-
Daniel Gerhardt authored
* Remove unused code * Optimize imports (group 10+ and static imports) * Remove redundant variable assignments * Replace explicit type parameters with <> * Remove redundant catch blocks * Use varargs instead of explicit array instantiation * Weaken visibility of methods and fields * Simplify conditions * Do not use StringBuilder for simple concatenations * Fix code style * Remove invalid Javadoc
-