|
|
@@ -6,30 +6,31 @@ const ObjectId = mongoose.Schema.Types.ObjectId;
|
|
|
/*
|
|
|
* define schema
|
|
|
*/
|
|
|
-const schema = new mongoose.Schema({
|
|
|
+const passwordResetOrderSchema = new mongoose.Schema({
|
|
|
token: { type: String, required: true, unique: true },
|
|
|
email: { type: String, required: true },
|
|
|
relatedUser: { type: ObjectId, ref: 'User' },
|
|
|
- isExpired: { type: Boolean, default: false },
|
|
|
});
|
|
|
-schema.plugin(uniqueValidator);
|
|
|
+passwordResetOrderSchema.plugin(uniqueValidator);
|
|
|
|
|
|
/**
|
|
|
* PasswordResetOrder Class
|
|
|
*
|
|
|
* @class PasswordResetOrder
|
|
|
*/
|
|
|
-class PasswordResetOrder {
|
|
|
|
|
|
- static generateOneTimeToken() {
|
|
|
+module.exports = function(crowi) {
|
|
|
+
|
|
|
+ passwordResetOrderSchema.statics.generateOneTimeToken = function() {
|
|
|
// TODO: generate unique token by GW-6802
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
-}
|
|
|
+ passwordResetOrderSchema.methods.isExpired = function() {
|
|
|
+ const now = Date.now();
|
|
|
+ const expiredAt = this.createdAt.getTime() + 600000;
|
|
|
|
|
|
-module.exports = function(crowi) {
|
|
|
- PasswordResetOrder.crowi = crowi;
|
|
|
- schema.loadClass(PasswordResetOrder);
|
|
|
- const model = mongoose.model('PasswordResetOrder', schema);
|
|
|
- return model;
|
|
|
+ return expiredAt < now;
|
|
|
+ };
|
|
|
+
|
|
|
+ return mongoose.model('PasswordResetOrder', passwordResetOrderSchema);
|
|
|
};
|