1

私は、人々が自分のアカウントを自分で作成することはできませんが、作成された最初のユーザー (私) がアプリケーションのフォームでユーザーを作成できるアプリケーションを構築しています。

それが /lib/config/account.js に設定した理由です:forbidClientAccountCreation: true,

私の問題は、ログに記録されているときにフォームにユーザーを作成できないことです..(上記のオプションを false に設定しても。コードは次のとおりです。

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; 
  }
});

.パッケージ

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

それはすべてアカウントに関連しています...

4

1 に答える 1

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 = "";
 }
});

/サーバー/メソッド/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})
  }
});

どうもありがとうございました :)

于 2015-11-20T15:30:52.357 に答える