Refactors verify_email, adds public html
This commit is contained in:
@@ -10,11 +10,13 @@ based on the parameters passed
|
||||
|
||||
// _adapter is private, use Symbol
|
||||
var _adapter = Symbol();
|
||||
import cache from '../cache';
|
||||
|
||||
export class AdaptableController {
|
||||
|
||||
constructor(adapter) {
|
||||
constructor(adapter, appId) {
|
||||
this.adapter = adapter;
|
||||
this.appId = appId;
|
||||
}
|
||||
|
||||
set adapter(adapter) {
|
||||
@@ -26,6 +28,10 @@ export class AdaptableController {
|
||||
return this[_adapter];
|
||||
}
|
||||
|
||||
get config() {
|
||||
return cache.apps[this.appId];
|
||||
}
|
||||
|
||||
expectedAdapterType() {
|
||||
throw new Error("Subclasses should implement expectedAdapterType()");
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ export class MailController extends AdaptableController {
|
||||
sendVerificationEmail(user, config) {
|
||||
const token = encodeURIComponent(user._email_verify_token);
|
||||
const username = encodeURIComponent(user.username);
|
||||
let link = `${config.mount}/verify_email?token=${token}&username=${username}`;
|
||||
|
||||
let link = `${config.verifyEmailURL}?token=${token}&username=${username}`;
|
||||
this.adapter.sendVerificationEmail({
|
||||
appName: config.appName,
|
||||
link: link,
|
||||
|
||||
32
src/Controllers/UserController.js
Normal file
32
src/Controllers/UserController.js
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
var DatabaseAdapter = require('../DatabaseAdapter');
|
||||
|
||||
export class UserController {
|
||||
|
||||
constructor(appId) {
|
||||
this.appId = appId;
|
||||
}
|
||||
|
||||
verifyEmail(username, token) {
|
||||
var database = DatabaseAdapter.getDatabaseConnection(this.appId);
|
||||
return new Promise((resolve, reject) => {
|
||||
database.collection('_User').then(coll => {
|
||||
// Need direct database access because verification token is not a parse field
|
||||
return coll.findAndModify({
|
||||
username: username,
|
||||
_email_verify_token: token,
|
||||
}, null, {$set: {emailVerified: true}}, (err, doc) => {
|
||||
if (err || !doc.value) {
|
||||
reject();
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export default UserController;
|
||||
Reference in New Issue
Block a user