check required fields in hasCompletedProfile callback

This commit is contained in:
Sacha Greif 2015-05-19 09:50:39 +09:00
parent feb6f96afe
commit cf9d4799f8
2 changed files with 18 additions and 2 deletions

View file

@ -54,6 +54,8 @@ Telescope.callbacks.add("onCreateUser", setupUser);
* @param {Object} user * @param {Object} user
*/ */
function hasCompletedProfile (user) { function hasCompletedProfile (user) {
return !!Users.getEmail(user); return _.every(Users.getRequiredFields(), function (fieldName) {
return !!Telescope.getNestedProperty(user, fieldName);
});
} }
Telescope.callbacks.add("profileCompletedChecks", hasCompletedProfile); Telescope.callbacks.add("profileCompletedChecks", hasCompletedProfile);

View file

@ -261,4 +261,18 @@ Users.getCurrentUserEmail = function () {
Users.findByEmail = function (email) { Users.findByEmail = function (email) {
return Meteor.users.findOne({"emails.address": email}); return Meteor.users.findOne({"emails.address": email});
} }
/**
* @method Users.getRequiredFields
* Get a list of all fields required for a profile to be complete
*/
Users.getRequiredFields = function () {
var schema = Users.simpleSchema()._schema;
var fields = _.filter(_.keys(schema), function (fieldName) {
var field = schema[fieldName];
return !!field.required;
});
return fields;
};