gpt4 book ai didi

meteor - 如何使用 meteor 帐户和自动生成添加/编辑用户

转载 作者:行者123 更新时间:2023-12-04 08:43:32 26 4
gpt4 key购买 nike

我正在 Meteor 中构建管理系统的一部分,允许管理员添加/编辑其他管理员。我正在使用 Meteor Accounts 和 Autoform,但我不知道如何处理它,以便用户使用 Autoform 进行验证并正确保存。从我发现的情况来看,我需要使用 Accounts.createUser方法并使表单成为 type="method"或其他什么,但我不确定如何处理,或者这是否是正确的方法。

这是我现在的代码:

架构:

Schema = {};

Schema.UserProfile = new SimpleSchema({
name: {
type: String,
label: "Name"
}
});

Schema.User = new SimpleSchema({
email: {
type: String,
regEx: SimpleSchema.RegEx.Email
},
password: {
type: String,
label: "Password",
min: 6
},
passwordConfirmation: {
type: String,
min: 6,
label: "Password Confirmation",
custom: function() {
if (this.value !== this.field('password').value) {
return "passwordMissmatch";
}
}
},
createdAt: {
type: Date,
autoValue: function() {
if (this.isInsert) {
return new Date;
} else if (this.isUpsert) {
return {$setOnInsert: new Date};
} else {
this.unset();
}
}
},
profile: {
type: Schema.UserProfile
},
services: {
type: Object,
optional: true,
blackbox: false
}
});

Meteor.users.attachSchema(Schema.User);

路线:
Router.route('/admin/admins', {
controller: 'AdminController',
name: 'adminAdmins',
title: 'Admins',
parent: 'adminHome',
});

Router.route('/admin/admins/new', {
controller: 'AdminController',
name: 'adminAdminNew',
title: 'New Admin',
parent: 'adminAdmins',
});

Router.route('/admin/admins/:_id/edit', {
controller: 'AdminController',
name: 'adminAdminEdit',
title: 'Edit Admin',
parent: 'adminAdmins',
data: function() {
return Meteor.users.findOne(this.params._id);
}
});

管理表格:
{{#autoForm collection="Meteor.users" doc=this id="adminAdminForm" type=formType}}

{{> afQuickField name='profile.name'}}
{{> afQuickField name='email'}}
{{> afQuickField name='password'}}
{{> afQuickField name='passwordConfirmation'}}

<button type="submit" class="btn btn-block btn-secondary">Save Changes</button>
{{/autoForm}}

最佳答案

您应该添加 Hooks 才能修改集合
应该是这样的

AutoForm.hooks({
adminAdminForm: {
onSubmit: function (doc) {
schemas.User.clean(doc);
this.done();
return false;
},
onSuccess:function(operation, result, template){
Router.go('users.show',{'username':template.data.doc.username});
},
onError: function(operation, error, template) {
console.log(operation,error)
}
}
});

您可以在专用文档 https://github.com/aldeed/meteor-autoform#callbackshooks 上找到更多详细信息

关于meteor - 如何使用 meteor 帐户和自动生成添加/编辑用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27956322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com