1

Я создаю приложение, в котором люди не могут создать свою учетную запись самостоятельно, но первый созданный пользователем (я) может создавать пользователей в форме в приложении.Meteor: Accounts.createUser() не создает пользователя

Вот почему я выставиться в /lib/config/account.js: forbidClientAccountCreation: true,

Моя проблема, я не могу создавать пользователей в моей форме, когда я вошел .. (даже если установить этот параметр . выше, с ложным Вот мой код:

userAdd.js:

Template.userAdd.events({ 
'submit .new-user': function(event) { 
    event.preventDefault(); 

    var email = $('input[name="email"]').val();; 
    var username = $('input[name="username"]').val();; 

    Accounts.createUser({ 
     email: email, 
     username: username, 
     password: 'toto', 
     profile: { 

     } 
    }); 

    event.target.email.value = ""; 
    event.target.username.value = ""; 
} 
}); 

/server/publications/user.js:

Meteor.publish('users', function() { 
    return Meteor.users.find(); 
}) 

Meteor.users.allow({ 
    'insert': function (userId, doc) { 
    return true; 
    } 
}); 

Мой USERLIST где отображается список пользователей:

Meteor.subscribe('users'); 

Template.usersList.helpers({ 
    users: function() { 
    return Meteor.users.find(); 
    } 
}); 

Я пытался также с Meteor.users.insert(), но он не работает слишком ..

Не могли бы вы помочь мне пожалуйста


Добавлена ​​Маршруты:

FlowRouter.route('/users', { 
name: "users", 
action: function() { 
    BlazeLayout.render('applicationLayout', { 
     menu: 'menu', 
     container: 'usersList' 
    }); 
} 
}); 

AccountsTemplates.configureRoute('changePwd'); 
AccountsTemplates.configureRoute('forgotPwd'); 
AccountsTemplates.configureRoute('resetPwd'); 
AccountsTemplates.configureRoute('signIn'); 

AddUser.html

<template name="userAdd"> 
    <form class="ui form new-user"> 
    <div class="inline fields"> 
     <div class="seven wide field"> 
      <label>Email</label> 
      <input type="text" name="email" placeholder="Email"> 
     </div> 
     <div class="seven wide field"> 
      <label>Username</label> 
      <input type="text" name="username" placeholder="Username"> 
     </div> 
     <button class="ui button icon right labeled teal" type="submit" name="submit"><i class="right checkmark icon"></i>Valider</button> 
    </div> 
    </form> 
</template> 

user.js

Template.tableUser.helpers({ 
    email: function() { 
    return this.emails[0].address; 
    } 
}); 

.Packages

insecure    # Allow all DB writes from clients (for prototyping) 
kadira:flow-router 
semantic:ui 
flemay:less-autoprefixer 
underscore 
kadira:blaze-layout 
arillo:flow-router-helpers 
zimme:active-route 
aldeed:collection2 
accounts-password 
useraccounts:flow-routing 
useraccounts:semantic-ui 
accounts-base 

Это все связано с счетам ...

+0

любые ошибки на сервере терминала или консоли браузера? – Sasikanth

+0

Нет, это проблема ... Нет ошибок на консоли ни на сервере. И когда я набираю: db.users.find(); на Meteor Mongo, я только один мой первый пользователь создал, а не новые ... – guillaumek

+0

Что произойдет, если вы создадите учетную запись из 'meteor shell'? – Sasikanth

ответ

2

Благодаря @JeremyK и @Sasikanth! Сейчас он работает,

Я изменил свой код на сервер. Не знаю, если все прекрасно, но вот рабочий код:

addUser.js:

Meteor.subscribe('users'); 

Template.userAdd.events({ 
'submit .new-user': function(event) { 
    event.preventDefault(); 

    var email = $('input[name="email"]').val(); 
    var password = $('input[name="password"]').val(); 
    var firstname = $('input[name="firstname"]').val(); 
    var lastname = $('input[name="lastname"]').val(); 

    Meteor.call("createUsers", email, password, firstname, lastname); 

    event.target.email.value = ""; 
    event.target.password.value = ""; 
    event.target.firstname.value = ""; 
    event.target.lastname.value = ""; 
} 
}); 

/server/methods/user.js

Meteor.methods({ 
createUsers: function(email, password, firstname, lastname) { 
    Accounts.createUser({ 
     password: password, 
     username: firstname + ' ' + lastname, 
     email: email, 
     createdAt: new Date(), 
    }); 
}, 

deleteUser : function(id){ 
    return Meteor.users.remove(id); 
}, 
}); 

user.js

Template.tableUser.events({ 
    "click .delete": function() { 
    var idUser= this._id; 
    Meteor.call('deleteUser',{_id:idUser}) 
    } 
}); 

Спасибо большое :)