|
@@ -13,6 +13,10 @@ module.exports = function(crowi) {
|
|
|
, STATUS_INVITED = 5
|
|
, STATUS_INVITED = 5
|
|
|
, USER_PUBLIC_FIELDS = '_id image googleId name username email introduction status createdAt admin' // TODO: どこか別の場所へ...
|
|
, USER_PUBLIC_FIELDS = '_id image googleId name username email introduction status createdAt admin' // TODO: どこか別の場所へ...
|
|
|
|
|
|
|
|
|
|
+ , LANG_EN_US = 'en_US'
|
|
|
|
|
+ , LANG_EN_GB = 'en_GB'
|
|
|
|
|
+ , LANG_JA_JP = 'ja_JP'
|
|
|
|
|
+
|
|
|
, PAGE_ITEMS = 50
|
|
, PAGE_ITEMS = 50
|
|
|
|
|
|
|
|
, userEvent = crowi.event('user')
|
|
, userEvent = crowi.event('user')
|
|
@@ -29,7 +33,11 @@ module.exports = function(crowi) {
|
|
|
introduction: { type: String },
|
|
introduction: { type: String },
|
|
|
password: String,
|
|
password: String,
|
|
|
apiToken: String,
|
|
apiToken: String,
|
|
|
- language: {type: String, enum: ['en', 'ja'], default: 'en'},
|
|
|
|
|
|
|
+ lang: {
|
|
|
|
|
+ type: String,
|
|
|
|
|
+ enum: Object.keys(getLanguageLabels()).map((k) => eval(k)),
|
|
|
|
|
+ default: LANG_EN_US
|
|
|
|
|
+ },
|
|
|
status: { type: Number, required: true, default: STATUS_ACTIVE, index: true },
|
|
status: { type: Number, required: true, default: STATUS_ACTIVE, index: true },
|
|
|
createdAt: { type: Date, default: Date.now },
|
|
createdAt: { type: Date, default: Date.now },
|
|
|
admin: { type: Boolean, default: 0, index: true }
|
|
admin: { type: Boolean, default: 0, index: true }
|
|
@@ -85,6 +93,14 @@ module.exports = function(crowi) {
|
|
|
return hasher.digest('base64');
|
|
return hasher.digest('base64');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ function getLanguageLabels() {
|
|
|
|
|
+ var lang = {};
|
|
|
|
|
+ lang.LANG_EN_US = LANG_EN_US;
|
|
|
|
|
+ lang.LANG_JA_JP = LANG_EN_US;
|
|
|
|
|
+
|
|
|
|
|
+ return lang;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
userSchema.methods.isPasswordSet = function() {
|
|
userSchema.methods.isPasswordSet = function() {
|
|
|
if (this.password) {
|
|
if (this.password) {
|
|
|
return true;
|
|
return true;
|
|
@@ -108,10 +124,10 @@ module.exports = function(crowi) {
|
|
|
return false;
|
|
return false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- userSchema.methods.update = function(name, email, language, callback) {
|
|
|
|
|
|
|
+ userSchema.methods.update = function(name, email, lang, callback) {
|
|
|
this.name = name;
|
|
this.name = name;
|
|
|
this.email = email;
|
|
this.email = email;
|
|
|
- this.language = language;
|
|
|
|
|
|
|
+ this.lang = lang;
|
|
|
|
|
|
|
|
this.save(function(err, userData) {
|
|
this.save(function(err, userData) {
|
|
|
return callback(err, userData);
|
|
return callback(err, userData);
|
|
@@ -235,6 +251,7 @@ module.exports = function(crowi) {
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ userSchema.statics.getLanguageLabels = getLanguageLabels;
|
|
|
userSchema.statics.getUserStatusLabels = function() {
|
|
userSchema.statics.getUserStatusLabels = function() {
|
|
|
var userStatus = {};
|
|
var userStatus = {};
|
|
|
userStatus[STATUS_REGISTERED] = '承認待ち';
|
|
userStatus[STATUS_REGISTERED] = '承認待ち';
|
|
@@ -615,7 +632,7 @@ module.exports = function(crowi) {
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- userSchema.statics.createUserByEmailAndPassword = function(name, username, email, password, language, callback) {
|
|
|
|
|
|
|
+ userSchema.statics.createUserByEmailAndPassword = function(name, username, email, password, lang, callback) {
|
|
|
var User = this
|
|
var User = this
|
|
|
, newUser = new User();
|
|
, newUser = new User();
|
|
|
|
|
|
|
@@ -623,7 +640,7 @@ module.exports = function(crowi) {
|
|
|
newUser.username = username;
|
|
newUser.username = username;
|
|
|
newUser.email = email;
|
|
newUser.email = email;
|
|
|
newUser.setPassword(password);
|
|
newUser.setPassword(password);
|
|
|
- newUser.language = language;
|
|
|
|
|
|
|
+ newUser.lang = lang;
|
|
|
newUser.createdAt = Date.now();
|
|
newUser.createdAt = Date.now();
|
|
|
newUser.status = decideUserStatusOnRegistration();
|
|
newUser.status = decideUserStatusOnRegistration();
|
|
|
|
|
|
|
@@ -651,13 +668,16 @@ module.exports = function(crowi) {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
- userSchema.statics.STATUS_REGISTERED = STATUS_REGISTERED;
|
|
|
|
|
- userSchema.statics.STATUS_ACTIVE = STATUS_ACTIVE;
|
|
|
|
|
- userSchema.statics.STATUS_SUSPENDED = STATUS_SUSPENDED;
|
|
|
|
|
- userSchema.statics.STATUS_DELETED = STATUS_DELETED;
|
|
|
|
|
- userSchema.statics.STATUS_INVITED = STATUS_INVITED;
|
|
|
|
|
|
|
+ userSchema.statics.STATUS_REGISTERED = STATUS_REGISTERED;
|
|
|
|
|
+ userSchema.statics.STATUS_ACTIVE = STATUS_ACTIVE;
|
|
|
|
|
+ userSchema.statics.STATUS_SUSPENDED = STATUS_SUSPENDED;
|
|
|
|
|
+ userSchema.statics.STATUS_DELETED = STATUS_DELETED;
|
|
|
|
|
+ userSchema.statics.STATUS_INVITED = STATUS_INVITED;
|
|
|
userSchema.statics.USER_PUBLIC_FIELDS = USER_PUBLIC_FIELDS;
|
|
userSchema.statics.USER_PUBLIC_FIELDS = USER_PUBLIC_FIELDS;
|
|
|
- userSchema.statics.PAGE_ITEMS = PAGE_ITEMS;
|
|
|
|
|
|
|
+ userSchema.statics.PAGE_ITEMS = PAGE_ITEMS;
|
|
|
|
|
+
|
|
|
|
|
+ userSchema.statics.LANG_EN_US = LANG_EN_US;
|
|
|
|
|
+ userSchema.statics.LANG_JA_JP = LANG_JA_JP;
|
|
|
|
|
|
|
|
return mongoose.model('User', userSchema);
|
|
return mongoose.model('User', userSchema);
|
|
|
};
|
|
};
|