codecombat/app/models
phoenixeliot 8496343a02 Improve student account recovery
This adds the ability to verify email addresses of a user, so we know they have access to the email address on their account.

Until a user has verified their email address, any teacher of a class they're in can reset their password for them via the Teacher Dashboard. When a user's email address is verified, a teacher may trigger a password recovery email to be sent to the student.

Verification links are valid forever, until the user changes the email address they have on file. They are created using a timestamp, with a sha256 of timestamp+salt+userID+email. Currently the hash value is rather long, could be shorter.

Squashed commit messages:

Add server endpoints for verifying email address

Add server endpoints for verifying email address (pt 2)

Add Server+Client endpoint for sending verification email

Add client view for verification links

Add Edit Student Modal for resetting passwords

Add specs for EditStudentModal

Tweak method name in EditStudentModal

Add edit student button to TeacherClassView

Fix up frontend for teacher password resetting

Add middleware for teacher password resetting

Improve button UX in EditStudentModal

Add JoinClassModal

Add welcome emails, use broad name

Use email without domain as fallback instead of full email

Fetch user on edit student modal open

Don't allow password reset if student email is verified

Set role to student on user signup with classCode

Tweak interface for joinClassModal

Add button to request verification email for yourself

Fix verify email template ID

Move text to en.coffee

Minor tweaks

Fix code review comments

Fix some tests, disable a broken one

Fix misc tests

Fix more tests

Refactor recovery email sending to auth

Fix overbroad sass

Add options to refactored recovery email function

Rename getByCode to fetchByCode

Fix error message

Fix up error handling in users middleware

Use .get instead of .toObject

Use findById

Fix more code review comments

Disable still-broken test
2016-05-24 14:07:28 -07:00
..
Achievement.coffee Added a new 'artisan' permission, which can edit most of the things admins can, but with less uncomfortable ultimate power. 2015-02-25 18:41:39 -08:00
AnalyticsLogEvent.coffee Log analytics events internally 2014-12-15 11:45:12 -08:00
AnalyticsStripeInvoice.coffee Subs dashboard perf 2015-07-31 16:19:40 -07:00
Article.coffee Added a new 'artisan' permission, which can edit most of the things admins can, but with less uncomfortable ultimate power. 2015-02-25 18:41:39 -08:00
Campaign.coffee Lock course content to classrooms 2016-04-27 09:58:04 -07:00
Clan.coffee Create and list clans 2015-04-01 11:56:48 -07:00
Classroom.coffee Improve student account recovery 2016-05-24 14:07:28 -07:00
CocoModel.coffee Refactor client tests to use factories instead of fixtures 2016-05-05 11:24:29 -07:00
CodeLog.coffee Implements the SPADE logger into the SpellView 2016-04-26 09:56:30 -07:00
Course.coffee Initial courses object model 2015-08-29 07:15:39 -07:00
CourseInstance.coffee Refactor and update teacher-dashboard 2016-05-06 13:13:11 -07:00
EarnedAchievement.coffee Tweaked achievement notification handling, also disabling an endless loop of achievement fetching. 2015-01-09 12:38:00 -08:00
File.coffee Clean up mixed quotes 2014-07-01 12:23:22 +08:00
Level.coffee Fix teacher sessionless play; uses default campaign levels 2016-04-28 12:46:09 -07:00
LevelComponent.coffee Added a new 'artisan' permission, which can edit most of the things admins can, but with less uncomfortable ultimate power. 2015-02-25 18:41:39 -08:00
LevelFeedback.coffee Clean up mixed quotes 2014-07-01 12:23:22 +08:00
LevelSession.coffee Fix #3484 2016-03-23 15:56:45 -07:00
LevelSystem.coffee Added a new 'artisan' permission, which can edit most of the things admins can, but with less uncomfortable ultimate power. 2015-02-25 18:41:39 -08:00
Mandate.coffee Add Mandate for modifying simulation throughput on the fly, other things later 2015-12-16 16:39:45 -08:00
Patch.coffee Clean up mixed quotes 2014-07-01 12:23:22 +08:00
Payment.coffee Added a simple payments page. 2014-11-25 11:09:29 -08:00
Poll.coffee Added admin/pending-patches view. Fixed accepting several kinds of patches. Added keyboard shortcuts for accepting (a) and rejecting (r) patches. Fixed #2490. Fixed #2515. Fixed #2304. 2015-03-28 13:54:44 -07:00
Prepaid.coffee Update teacher surveys 2015-11-24 10:32:19 -08:00
Product.coffee Move product information to the db 2015-12-14 11:10:50 -08:00
Purchase.coffee Implementation of Heald's design of the PlayItemsModal. Added purchasing logic to the server to support it. Refactored header font from Bangers to Open Sans Condensed. 2014-11-03 20:48:59 -08:00
RealTimeModel.coffee PVP waiting screen in real-time view 2014-08-29 21:46:26 -07:00
State.coffee Refactor and update teacher-dashboard 2016-05-06 13:13:11 -07:00
SuperModel.coffee Lock course content to classrooms 2016-04-27 09:58:04 -07:00
ThangType.coffee Fix isSilhouettedItem 2016-01-02 16:10:03 -08:00
TrialRequest.coffee Replace TeachersFreeTrialView with RequestQuoteView 2016-01-28 17:21:36 -08:00
User.coffee Improve student account recovery 2016-05-24 14:07:28 -07:00
UserCodeProblem.coffee Instrument user code problems 2014-08-14 13:32:00 -07:00
UserPollsRecord.coffee Polls! 2015-03-08 16:36:17 -07:00