Index

A C D E F H I L M N O P R S T U V 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form

A

account(UUID) - Method in class com.ericbouchut.learndev.admin.AccountAdminService
One account, or 404.
AccountAdminService - Class in com.ericbouchut.learndev.admin
Account administration: create instructor accounts and archive or reactivate any account.
AccountAdminService(UserRepository, RegistrationService, AuditService) - Constructor for class com.ericbouchut.learndev.admin.AccountAdminService
 
AdminController - Class in com.ericbouchut.learndev.admin
Web endpoints of the administration area under /admin/** (gated to ROLE_ADMIN by the security rules): the account list, instructor account creation, and account archiving.
AdminController(AccountAdminService, UserRepository, CourseRepository, InstructorCourseService) - Constructor for class com.ericbouchut.learndev.admin.AdminController
 
allUsers() - Method in class com.ericbouchut.learndev.admin.AccountAdminService
Every account, for the admin user list.
archive(Course, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Archive a DRAFT or PUBLISHED course (v1 has no destructive delete).
archive(User, User, String) - Method in class com.ericbouchut.learndev.admin.AccountAdminService
Archive an account: the user can no longer log in.
archiveAccount(UUID, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Archive an account (PRG with an archived flag).
archiveCourse(Long, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Archive the course (PRG with an archived flag).
ARCHIVED - Enum constant in enum class com.ericbouchut.learndev.course.entity.PublicationStatus
 
archiveLesson(Lesson, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Archive a DRAFT or PUBLISHED lesson.
AuditLog - Class in com.ericbouchut.learndev.audit.entity
One security-relevant event (maps the audit_logs table).
AuditLog() - Constructor for class com.ericbouchut.learndev.audit.entity.AuditLog
 
AuditLogRepository - Interface in com.ericbouchut.learndev.audit.repository
 
AuditService - Class in com.ericbouchut.learndev.audit
Minimal security audit trail: internal use only, no controller.
AuditService(AuditLogRepository) - Constructor for class com.ericbouchut.learndev.audit.AuditService
 
AuthController - Class in com.ericbouchut.learndev.auth
Web endpoints for authentication pages: home and login views, and the registration form (display and submission).
AuthController(RegistrationService, EmailVerificationService) - Constructor for class com.ericbouchut.learndev.auth.AuthController
 

C

CacheConfig - Class in com.ericbouchut.learndev.common.config
In-memory caching (Spring Cache over Caffeine), currently holding rendered lesson HTML (see ADR-0013 in docs/adr/).
CacheConfig() - Constructor for class com.ericbouchut.learndev.common.config.CacheConfig
 
cacheKey(String) - Static method in class com.ericbouchut.learndev.course.MarkdownRenderer
Cache key: SHA-256 of the source.
cacheManager() - Method in class com.ericbouchut.learndev.common.config.CacheConfig
 
catalogue() - Method in class com.ericbouchut.learndev.course.CourseService
The public catalogue: published courses only.
catalogue(Principal, Model) - Method in class com.ericbouchut.learndev.course.CourseController
Display the catalogue of published courses, with the logged-in student's active enrollments marked.
com.ericbouchut.learndev - package com.ericbouchut.learndev
 
com.ericbouchut.learndev.admin - package com.ericbouchut.learndev.admin
 
com.ericbouchut.learndev.audit - package com.ericbouchut.learndev.audit
 
com.ericbouchut.learndev.audit.entity - package com.ericbouchut.learndev.audit.entity
 
com.ericbouchut.learndev.audit.repository - package com.ericbouchut.learndev.audit.repository
 
com.ericbouchut.learndev.auth - package com.ericbouchut.learndev.auth
 
com.ericbouchut.learndev.auth.dto - package com.ericbouchut.learndev.auth.dto
 
com.ericbouchut.learndev.auth.entity - package com.ericbouchut.learndev.auth.entity
 
com.ericbouchut.learndev.auth.exception - package com.ericbouchut.learndev.auth.exception
 
com.ericbouchut.learndev.auth.repository - package com.ericbouchut.learndev.auth.repository
 
com.ericbouchut.learndev.common.config - package com.ericbouchut.learndev.common.config
 
com.ericbouchut.learndev.course - package com.ericbouchut.learndev.course
 
com.ericbouchut.learndev.course.dto - package com.ericbouchut.learndev.course.dto
 
com.ericbouchut.learndev.course.entity - package com.ericbouchut.learndev.course.entity
 
com.ericbouchut.learndev.course.repository - package com.ericbouchut.learndev.course.repository
 
com.ericbouchut.learndev.legal - package com.ericbouchut.learndev.legal
 
com.ericbouchut.learndev.role.entity - package com.ericbouchut.learndev.role.entity
 
com.ericbouchut.learndev.role.repository - package com.ericbouchut.learndev.role.repository
 
com.ericbouchut.learndev.user.entity - package com.ericbouchut.learndev.user.entity
 
com.ericbouchut.learndev.user.repository - package com.ericbouchut.learndev.user.repository
 
COMPLETED - Enum constant in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
 
contentMarkdown() - Method in record class com.ericbouchut.learndev.course.dto.LessonForm
Returns the value of the contentMarkdown record component.
countByIpAddressAndExpiresAtAfter(String, OffsetDateTime) - Method in interface com.ericbouchut.learndev.auth.repository.PasswordResetTokenRepository
Same recency approximation, keyed by the requester's IP.
countByUserAndExpiresAtAfter(User, OffsetDateTime) - Method in interface com.ericbouchut.learndev.auth.repository.PasswordResetTokenRepository
Requests made recently by this user.
Course - Class in com.ericbouchut.learndev.course.entity
 
Course() - Constructor for class com.ericbouchut.learndev.course.entity.Course
 
CourseController - Class in com.ericbouchut.learndev.course
Web endpoints of the student course experience: the published course catalogue, the course detail page, and the enroll/drop actions.
CourseController(CourseService, EnrollmentService, MarkdownRenderer, UserRepository) - Constructor for class com.ericbouchut.learndev.course.CourseController
 
CourseForm - Record Class in com.ericbouchut.learndev.course.dto
Form-backing record for creating or editing a course (the description is optional; the column is TEXT, no length cap).
CourseForm(String, String) - Constructor for record class com.ericbouchut.learndev.course.dto.CourseForm
Creates an instance of a CourseForm record class.
courseList(Model) - Method in class com.ericbouchut.learndev.admin.AdminController
Display every course, any status, any instructor, with its lessons (content moderation view).
CourseRepository - Interface in com.ericbouchut.learndev.course.repository
 
CourseService - Class in com.ericbouchut.learndev.course
Read side of the course catalogue, applying the student visibility rule: a student sees PUBLISHED courses; a student who is enrolled keeps read access to the course and its published lessons if the course is later ARCHIVED (content continuity); DRAFT content is never visible to students.
CourseService(CourseRepository, LessonRepository, EnrollmentRepository) - Constructor for class com.ericbouchut.learndev.course.CourseService
 
create(User, CourseForm) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Create a new DRAFT course owned by the instructor.
createCourse(CourseForm, BindingResult, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Create a DRAFT course from the submitted form.
createInstructor(RegisterForm, BindingResult, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Create an instructor account.
createInstructor(RegisterForm, User, String) - Method in class com.ericbouchut.learndev.admin.AccountAdminService
Create an INSTRUCTOR account (same uniqueness and hashing rules as self-registration, different seeded role).
createLesson(Course, LessonForm) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Create a DRAFT lesson at the end of the course (position max + 1).
createLesson(Long, LessonForm, BindingResult, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Create a DRAFT lesson at the end of the course.
CustomUserDetailsService - Class in com.ericbouchut.learndev.auth
 
CustomUserDetailsService(UserRepository) - Constructor for class com.ericbouchut.learndev.auth.CustomUserDetailsService
 

D

dashboard(Principal, Model) - Method in class com.ericbouchut.learndev.course.DashboardController
Display the dashboard with the student's active enrollments (dropped ones are not listed; re-enrolling brings them back).
DashboardController - Class in com.ericbouchut.learndev.course
Web endpoint of the student dashboard: the logged-in user's active courses with their enrollment status.
DashboardController(EnrollmentService, UserRepository) - Constructor for class com.ericbouchut.learndev.course.DashboardController
 
description() - Method in record class com.ericbouchut.learndev.course.dto.CourseForm
Returns the value of the description record component.
detail(Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.CourseController
Display one course with its published lessons and the enroll or quit action matching the student's enrollment state.
DRAFT - Enum constant in enum class com.ericbouchut.learndev.course.entity.PublicationStatus
 
drop(User, Course) - Method in class com.ericbouchut.learndev.course.EnrollmentService
Drop the student from a course: ENROLLED or IN_PROGRESS becomes DROPPED with a drop timestamp.
drop(Long, Principal) - Method in class com.ericbouchut.learndev.course.CourseController
Drop the student from the course, then redirect back to the course page with a dropped confirmation flag (PRG).
DROPPED - Enum constant in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
 
dropStudent(Course, User, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Remove a student from the course on the instructor's behalf.
dropStudent(Long, UUID, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Remove a student from the course (PRG with a dropped flag).
DuplicateEmailException - Exception Class in com.ericbouchut.learndev.auth.exception
Thrown when registration is attempted with an email that is already registered.
DuplicateEmailException(String) - Constructor for exception class com.ericbouchut.learndev.auth.exception.DuplicateEmailException
 
DuplicateUsernameException - Exception Class in com.ericbouchut.learndev.auth.exception
Thrown when registration is attempted with a username that already exists.
DuplicateUsernameException(String) - Constructor for exception class com.ericbouchut.learndev.auth.exception.DuplicateUsernameException
 

E

editCourseForm(Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the edit form of one of the instructor's courses.
editLessonForm(Long, Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the edit form of one lesson.
email() - Method in record class com.ericbouchut.learndev.auth.dto.ForgotPasswordForm
Returns the value of the email record component.
email() - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Returns the value of the email record component.
EmailToken - Class in com.ericbouchut.learndev.auth.entity
A single-use, expiring email-verification token (maps the email_tokens table).
EmailToken() - Constructor for class com.ericbouchut.learndev.auth.entity.EmailToken
 
EmailTokenRepository - Interface in com.ericbouchut.learndev.auth.repository
 
EmailVerificationController - Class in com.ericbouchut.learndev.auth
Web endpoints of the email verification flow: the emailed link lands on GET /auth/verify (public, like the whole /auth prefix), and a logged-in user can ask for a fresh link from the dashboard banner.
EmailVerificationController(EmailVerificationService, UserRepository) - Constructor for class com.ericbouchut.learndev.auth.EmailVerificationController
 
EmailVerificationMailer - Class in com.ericbouchut.learndev.auth
Sends the email-verification message.
EmailVerificationMailer(JavaMailSender, String, Duration) - Constructor for class com.ericbouchut.learndev.auth.EmailVerificationMailer
 
EmailVerificationService - Class in com.ericbouchut.learndev.auth
Email verification: proves the registered address belongs to the user.
EmailVerificationService(EmailTokenRepository, UserRepository, EmailVerificationMailer, AuditService, Duration) - Constructor for class com.ericbouchut.learndev.auth.EmailVerificationService
 
enroll(User, Course) - Method in class com.ericbouchut.learndev.course.EnrollmentService
Enroll the student in a published course.
enroll(Long, Principal) - Method in class com.ericbouchut.learndev.course.CourseController
Register the student in the course, then redirect back to the course page with an enrolled confirmation flag (PRG).
ENROLLED - Enum constant in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
 
Enrollment - Class in com.ericbouchut.learndev.course.entity
Join entity linking a student to a course they joined, with state of its own (status and transition timestamps), which is why the association is an entity rather than a bare @ManyToMany like user_roles.
Enrollment(User, Course) - Constructor for class com.ericbouchut.learndev.course.entity.Enrollment
 
enrollmentFor(User, Course) - Method in class com.ericbouchut.learndev.course.EnrollmentService
The enrollment of a student in a course, if any (dropped included).
EnrollmentId - Class in com.ericbouchut.learndev.course.entity
Composite primary key of Enrollment: the (user, course) pair IS the identity, so a student cannot enroll twice in the same course by construction.
EnrollmentId() - Constructor for class com.ericbouchut.learndev.course.entity.EnrollmentId
 
EnrollmentRepository - Interface in com.ericbouchut.learndev.course.repository
 
EnrollmentService - Class in com.ericbouchut.learndev.course
Student-side enrollment lifecycle (see the diagram in CONTRIBUTING.md).
EnrollmentService(EnrollmentRepository) - Constructor for class com.ericbouchut.learndev.course.EnrollmentService
 
EnrollmentStatus - Enum Class in com.ericbouchut.learndev.course.entity
Persisted states of the student course progress lifecycle (see the diagram in CONTRIBUTING.md).
equals(Object) - Method in record class com.ericbouchut.learndev.auth.dto.ForgotPasswordForm
Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.ericbouchut.learndev.course.dto.CourseForm
Indicates whether some other object is "equal to" this one.
equals(Object) - Method in record class com.ericbouchut.learndev.course.dto.LessonForm
Indicates whether some other object is "equal to" this one.
existsByEmail(String) - Method in interface com.ericbouchut.learndev.user.repository.UserRepository
 
existsByUsername(String) - Method in interface com.ericbouchut.learndev.user.repository.UserRepository
 

F

filterChain(HttpSecurity) - Method in class com.ericbouchut.learndev.common.config.SecurityConfig
 
findByCourse(Course) - Method in interface com.ericbouchut.learndev.course.repository.EnrollmentRepository
The roster of a course.
findByCourseAndStatusOrderByPositionAsc(Course, PublicationStatus) - Method in interface com.ericbouchut.learndev.course.repository.LessonRepository
The lessons of a course in one status, in reading order.
findByCourseOrderByPositionAsc(Course) - Method in interface com.ericbouchut.learndev.course.repository.LessonRepository
The lessons of a course in reading order (position ascending).
findByEmail(String) - Method in interface com.ericbouchut.learndev.user.repository.UserRepository
 
findByInstructor(User) - Method in interface com.ericbouchut.learndev.course.repository.CourseRepository
 
findByRoleName(String) - Method in interface com.ericbouchut.learndev.role.repository.RoleRepository
 
findByStatus(PublicationStatus) - Method in interface com.ericbouchut.learndev.course.repository.CourseRepository
The public catalogue lists PUBLISHED courses only.
findByToken(String) - Method in interface com.ericbouchut.learndev.auth.repository.EmailTokenRepository
Lookup by SHA-256 hash (the raw token is never stored).
findByToken(String) - Method in interface com.ericbouchut.learndev.auth.repository.PasswordResetTokenRepository
Lookup by the SHA-256 hash of the raw token.
findByUser(User) - Method in interface com.ericbouchut.learndev.course.repository.EnrollmentRepository
A student's enrollments (their personal course list).
findByUserAndCourse(User, Course) - Method in interface com.ericbouchut.learndev.course.repository.EnrollmentRepository
The single enrollment of a student in a course, if any.
findByUserAndUsedAtIsNull(User) - Method in interface com.ericbouchut.learndev.auth.repository.EmailTokenRepository
The user's tokens that were never consumed (to invalidate on resend).
findByUserAndUsedAtIsNull(User) - Method in interface com.ericbouchut.learndev.auth.repository.PasswordResetTokenRepository
Outstanding (not yet consumed) tokens of a user, for invalidation.
findByUsername(String) - Method in interface com.ericbouchut.learndev.user.repository.UserRepository
Loads a user with their roles fetched in the same query.
findUsableToken(String) - Method in class com.ericbouchut.learndev.auth.PasswordResetService
Returns the token entity when the raw token is valid (exists, not expired, not used).
forgotPasswordForm(Model) - Method in class com.ericbouchut.learndev.auth.PasswordResetController
Display the "forgot password" request form.
ForgotPasswordForm - Record Class in com.ericbouchut.learndev.auth.dto
Form backing the "forgot password" request page.
ForgotPasswordForm(String) - Constructor for record class com.ericbouchut.learndev.auth.dto.ForgotPasswordForm
Creates an instance of a ForgotPasswordForm record class.

H

hashCode() - Method in record class com.ericbouchut.learndev.auth.dto.ForgotPasswordForm
Returns a hash code value for this object.
hashCode() - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Returns a hash code value for this object.
hashCode() - Method in record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Returns a hash code value for this object.
hashCode() - Method in record class com.ericbouchut.learndev.course.dto.CourseForm
Returns a hash code value for this object.
hashCode() - Method in record class com.ericbouchut.learndev.course.dto.LessonForm
Returns a hash code value for this object.
home() - Method in class com.ericbouchut.learndev.auth.AuthController
GET / Display the home page.

I

IN_PROGRESS - Enum constant in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
 
InstructorCourseController - Class in com.ericbouchut.learndev.course
Web endpoints of the instructor authoring area under /instructor/** (gated to ROLE_INSTRUCTOR by the security rules): the instructor's course list, the course create/edit forms, and the publication lifecycle actions.
InstructorCourseController(InstructorCourseService, UserRepository) - Constructor for class com.ericbouchut.learndev.course.InstructorCourseController
 
InstructorCourseService - Class in com.ericbouchut.learndev.course
Write side of the course domain for instructors: authoring and the publication lifecycle of CONTRIBUTING.md (publish from DRAFT, archive from DRAFT or PUBLISHED, restore an ARCHIVED item to DRAFT).
InstructorCourseService(CourseRepository, LessonRepository, EnrollmentRepository, EnrollmentService, AuditService) - Constructor for class com.ericbouchut.learndev.course.InstructorCourseService
 
isUsable(OffsetDateTime) - Method in class com.ericbouchut.learndev.auth.entity.EmailToken
True when the token can still be consumed (not used, not expired).
isUsable(OffsetDateTime) - Method in class com.ericbouchut.learndev.auth.entity.PasswordResetToken
True when the token can still be consumed (not used, not expired).

L

LearnDevApplication - Class in com.ericbouchut.learndev
 
LearnDevApplication() - Constructor for class com.ericbouchut.learndev.LearnDevApplication
 
LegalController - Class in com.ericbouchut.learndev.legal
Web endpoints for the legal pages.
LegalController() - Constructor for class com.ericbouchut.learndev.legal.LegalController
 
lesson(Long, Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.CourseController
Display one published lesson to an enrolled student, with the lesson Markdown rendered to sanitized HTML and previous/next links in reading order.
Lesson - Class in com.ericbouchut.learndev.course.entity
An individual piece of content within a course, authored as Markdown (content_markdown) and rendered to HTML at display time.
Lesson() - Constructor for class com.ericbouchut.learndev.course.entity.Lesson
 
LessonForm - Record Class in com.ericbouchut.learndev.course.dto
Form-backing record for creating or editing a lesson.
LessonForm(String, String) - Constructor for record class com.ericbouchut.learndev.course.dto.LessonForm
Creates an instance of a LessonForm record class.
LessonRepository - Interface in com.ericbouchut.learndev.course.repository
 
lessonsOf(Course) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
The lessons of the course in reading order, all statuses included.
loadUserByUsername(String) - Method in class com.ericbouchut.learndev.auth.CustomUserDetailsService
 
login() - Method in class com.ericbouchut.learndev.auth.AuthController
Display the login form.
LoginAttemptListener - Class in com.ericbouchut.learndev.auth
Account lockout: counts consecutive failed logins per account and locks the account at the configured threshold (learndev.lockout.max-attempts).
LoginAttemptListener(UserRepository, AuditService, int) - Constructor for class com.ericbouchut.learndev.auth.LoginAttemptListener
 

M

main(String[]) - Static method in class com.ericbouchut.learndev.LearnDevApplication
 
MarkdownRenderer - Class in com.ericbouchut.learndev.course
Converts lesson Markdown to HTML that is safe to serve.
MarkdownRenderer() - Constructor for class com.ericbouchut.learndev.course.MarkdownRenderer
 
moveLesson(Long, Long, String, Principal) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Move a lesson one step up or down in reading order (PRG).
moveLessonDown(Course, Lesson) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Swap the lesson with the one after it in reading order (no-op at the bottom).
moveLessonUp(Course, Lesson) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Swap the lesson with the one before it in reading order (no-op at the top).
myCourses(User) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
The instructor's own courses, whatever their status.
myCourses(Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the instructor's courses, all statuses included.
myEnrollments(User) - Method in class com.ericbouchut.learndev.course.EnrollmentService
All enrollments of a student, dropped included (the dashboard filters).

N

newCourseForm(Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the course creation form.
newInstructorForm(Model) - Method in class com.ericbouchut.learndev.admin.AdminController
Display the instructor account creation form.
newLessonForm(Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the lesson creation form for one of the instructor's courses.

O

onFailure(AuthenticationFailureBadCredentialsEvent) - Method in class com.ericbouchut.learndev.auth.LoginAttemptListener
Wrong password: count it, and lock the account at the threshold.
onSuccess(AuthenticationSuccessEvent) - Method in class com.ericbouchut.learndev.auth.LoginAttemptListener
Successful login: reset the counter and stamp the login time.
ownedCourse(Long, User) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
The course as manageable by the given instructor: 404 when it does not exist, 403 when it belongs to another instructor.
ownedLesson(Course, Long) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
One lesson of the given course, whatever its status: 404 when the lesson does not exist or belongs to another course.

P

password() - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Returns the value of the password record component.
password() - Method in record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Returns the value of the password record component.
passwordEncoder() - Method in class com.ericbouchut.learndev.common.config.SecurityConfig
 
PasswordResetController - Class in com.ericbouchut.learndev.auth
Web endpoints for the password-reset flow: the "forgot password" request page and the "reset password" page that consumes the emailed token.
PasswordResetController(PasswordResetService) - Constructor for class com.ericbouchut.learndev.auth.PasswordResetController
 
PasswordResetMailer - Class in com.ericbouchut.learndev.auth
Sends the password-reset email.
PasswordResetMailer(JavaMailSender, String, Duration) - Constructor for class com.ericbouchut.learndev.auth.PasswordResetMailer
 
PasswordResetService - Class in com.ericbouchut.learndev.auth
The password-reset ("forgot password") flow.
PasswordResetService(UserRepository, PasswordResetTokenRepository, PasswordEncoder, PasswordResetMailer, AuditService, Duration, long, Duration) - Constructor for class com.ericbouchut.learndev.auth.PasswordResetService
 
PasswordResetToken - Class in com.ericbouchut.learndev.auth.entity
A single-use, expiring password-reset token (maps the reset_tokens table).
PasswordResetToken() - Constructor for class com.ericbouchut.learndev.auth.entity.PasswordResetToken
 
PasswordResetTokenRepository - Interface in com.ericbouchut.learndev.auth.repository
 
privacy() - Method in class com.ericbouchut.learndev.legal.LegalController
Display the privacy policy page (in French, the language of the supervisory framework this policy addresses).
PublicationStatus - Enum Class in com.ericbouchut.learndev.course.entity
Editorial lifecycle shared by courses and lessons (see the Course and Lesson lifecycle diagrams in CONTRIBUTING.md).
publish(Course, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Publish a DRAFT course; the first publish stamps published_at.
publishCourse(Long, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Publish the course (PRG with a published flag).
PUBLISHED - Enum constant in enum class com.ericbouchut.learndev.course.entity.PublicationStatus
 
publishedLesson(Course, Long) - Method in class com.ericbouchut.learndev.course.CourseService
One published lesson of the given course, or 404 when the lesson does not exist, is not published, or belongs to another course.
publishedLessons(Course) - Method in class com.ericbouchut.learndev.course.CourseService
The lessons of a course a student may read, in reading order.
publishLesson(Lesson, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Publish a DRAFT lesson.

R

reactivate(User, User, String) - Method in class com.ericbouchut.learndev.admin.AccountAdminService
Reactivate an archived account: the user can log in again.
reactivateAccount(UUID, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Reactivate an account (PRG with a reactivated flag).
record(String, User, String, boolean, String) - Method in class com.ericbouchut.learndev.audit.AuditService
Records one audit event.
register(RegisterForm, BindingResult, HttpServletRequest) - Method in class com.ericbouchut.learndev.auth.AuthController
Processes a submitted registration form.
register(RegisterForm) - Method in class com.ericbouchut.learndev.auth.RegistrationService
Registers a new account with the default STUDENT role.
register(RegisterForm, String) - Method in class com.ericbouchut.learndev.auth.RegistrationService
Registers a new account with the given seeded role (self-registration uses STUDENT; the admin area creates INSTRUCTOR accounts).
registerForm(Model) - Method in class com.ericbouchut.learndev.auth.AuthController
Display the User registration form.
RegisterForm - Record Class in com.ericbouchut.learndev.auth.dto
RegisterForm holds the data submitted by a browser HTML form for user registration.
RegisterForm(String, String, String) - Constructor for record class com.ericbouchut.learndev.auth.dto.RegisterForm
Creates an instance of a RegisterForm record class.
RegistrationService - Class in com.ericbouchut.learndev.auth
Creates new user accounts: enforces unique username and email, hashes the password, and assigns the default STUDENT role.
RegistrationService(UserRepository, RoleRepository, PasswordEncoder) - Constructor for class com.ericbouchut.learndev.auth.RegistrationService
 
render(String) - Method in class com.ericbouchut.learndev.course.MarkdownRenderer
 
RENDERED_MARKDOWN_CACHE - Static variable in class com.ericbouchut.learndev.common.config.CacheConfig
 
requestReset(ForgotPasswordForm, BindingResult, HttpServletRequest) - Method in class com.ericbouchut.learndev.auth.PasswordResetController
Processes a "forgot password" request.
requestReset(String, String, String) - Method in class com.ericbouchut.learndev.auth.PasswordResetService
Handles a "forgot password" request.
resend(Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.auth.EmailVerificationController
Send a fresh verification link to the logged-in user (dashboard banner action).
resetPassword(ResetPasswordForm, BindingResult, HttpServletRequest, Model) - Method in class com.ericbouchut.learndev.auth.PasswordResetController
Consumes the token and sets the new password.
resetPassword(String, String, String) - Method in class com.ericbouchut.learndev.auth.PasswordResetService
Consumes the token and sets the new password.
resetPasswordForm(String, Model) - Method in class com.ericbouchut.learndev.auth.PasswordResetController
Display the "reset password" form when the emailed token is valid; otherwise render the invalid-link state (expired, used, or unknown).
ResetPasswordForm - Record Class in com.ericbouchut.learndev.auth.dto
Form backing the "reset password" page.
ResetPasswordForm(String, String) - Constructor for record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Creates an instance of a ResetPasswordForm record class.
restore(Course, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Restore an ARCHIVED course to DRAFT ("re-open" in the lifecycle).
restoreCourse(Long, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Restore an archived course to draft (PRG with a restored flag).
restoreLesson(Lesson, User, String) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Restore an ARCHIVED lesson to DRAFT.
Role - Class in com.ericbouchut.learndev.role.entity
 
Role() - Constructor for class com.ericbouchut.learndev.role.entity.Role
 
RoleRepository - Interface in com.ericbouchut.learndev.role.repository
 
roster(Course) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
The roster of a course: every enrollment, dropped ones included.
roster(Long, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Display the roster of the course: every enrollment with its status and lifecycle dates.

S

SecurityConfig - Class in com.ericbouchut.learndev.common.config
 
SecurityConfig() - Constructor for class com.ericbouchut.learndev.common.config.SecurityConfig
 
sendResetEmail(String, String) - Method in class com.ericbouchut.learndev.auth.PasswordResetMailer
 
sendVerification(User, String, String) - Method in class com.ericbouchut.learndev.auth.EmailVerificationService
Issue a fresh token for the user (invalidating any open one) and email the verification link.
sendVerificationEmail(String, String) - Method in class com.ericbouchut.learndev.auth.EmailVerificationMailer
 

T

title() - Method in record class com.ericbouchut.learndev.course.dto.CourseForm
Returns the value of the title record component.
title() - Method in record class com.ericbouchut.learndev.course.dto.LessonForm
Returns the value of the title record component.
token() - Method in record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Returns the value of the token record component.
toString() - Method in record class com.ericbouchut.learndev.auth.dto.ForgotPasswordForm
Returns a string representation of this record class.
toString() - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Returns a string representation of this record class.
toString() - Method in record class com.ericbouchut.learndev.auth.dto.ResetPasswordForm
Returns a string representation of this record class.
toString() - Method in record class com.ericbouchut.learndev.course.dto.CourseForm
Returns a string representation of this record class.
toString() - Method in record class com.ericbouchut.learndev.course.dto.LessonForm
Returns a string representation of this record class.
transitionCourse(Long, String, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Archive or restore any course, bypassing the instructor ownership rule (the lifecycle guards still apply).
transitionLesson(Long, Long, String, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Archive or restore any lesson of a course, bypassing the instructor ownership rule.
transitionLesson(Long, Long, String, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Publish, archive, or restore a lesson (PRG back to the course editor).

U

unlock(User) - Static method in class com.ericbouchut.learndev.auth.LoginAttemptListener
Clear the lock and the counter (admin unlock, password reset).
unlock(User, User, String) - Method in class com.ericbouchut.learndev.admin.AccountAdminService
Unlock an account locked by failed logins and reset its counter.
unlockAccount(UUID, Principal, HttpServletRequest) - Method in class com.ericbouchut.learndev.admin.AdminController
Unlock an account locked by failed logins (PRG with an unlocked flag).
update(Course, CourseForm) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Update the title and description of the instructor's course.
updateCourse(Long, CourseForm, BindingResult, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Update the course from the submitted form.
updateLesson(Lesson, LessonForm) - Method in class com.ericbouchut.learndev.course.InstructorCourseService
Update the title and Markdown content of a lesson.
updateLesson(Long, Long, LessonForm, BindingResult, Principal, Model) - Method in class com.ericbouchut.learndev.course.InstructorCourseController
Update the lesson from the submitted form.
User - Class in com.ericbouchut.learndev.user.entity
 
User() - Constructor for class com.ericbouchut.learndev.user.entity.User
 
userList(Model) - Method in class com.ericbouchut.learndev.admin.AdminController
Display every account with its roles and active flag.
username() - Method in record class com.ericbouchut.learndev.auth.dto.RegisterForm
Returns the value of the username record component.
UserRepository - Interface in com.ericbouchut.learndev.user.repository
 

V

valueOf(String) - Static method in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
Returns the enum constant of this class with the specified name.
valueOf(String) - Static method in enum class com.ericbouchut.learndev.course.entity.PublicationStatus
Returns the enum constant of this class with the specified name.
values() - Static method in enum class com.ericbouchut.learndev.course.entity.EnrollmentStatus
Returns an array containing the constants of this enum class, in the order they are declared.
values() - Static method in enum class com.ericbouchut.learndev.course.entity.PublicationStatus
Returns an array containing the constants of this enum class, in the order they are declared.
verify(String, HttpServletRequest) - Method in class com.ericbouchut.learndev.auth.EmailVerificationController
Consume the emailed verification link.
verify(String, String) - Method in class com.ericbouchut.learndev.auth.EmailVerificationService
Consume a verification token: marks the user verified and burns the token.
visibleCourse(Long, User) - Method in class com.ericbouchut.learndev.course.CourseService
The course as visible to the given student, or 404 when the course does not exist or the visibility rule (see class Javadoc) hides it.
A C D E F H I L M N O P R S T U V 
All Classes and Interfaces|All Packages|Constant Field Values|Serialized Form