Improves AdapterLoader, enforces configuraiton on Adapters

This commit is contained in:
Florent Vilmart
2016-02-23 21:05:27 -05:00
parent 8dc37b9d30
commit 0b307bc22f
17 changed files with 176 additions and 109 deletions

View File

@@ -31,7 +31,6 @@ export class AdaptableController {
}
validateAdapter(adapter) {
if (!adapter) {
throw new Error(this.constructor.name+" requires an adapter");
}

View File

@@ -0,0 +1,29 @@
import AdaptableController from './AdaptableController';
import { MailAdapter } from '../Adapters/Email/MailAdapter';
import { randomString } from '../cryptoUtils';
import { inflate } from '../triggers';
export class MailController extends AdaptableController {
setEmailVerificationStatus(user, status) {
if (status == false) {
user._email_verify_token = randomString(25);
}
user.emailVerified = status;
}
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}`;
this.adapter.sendVerificationEmail({
appName: config.appName,
link: link,
user: inflate('_User', user),
});
}
sendMail(options) {
this.adapter.sendMail(options);
}
expectedAdapterType() {
return MailAdapter;
}
}