我正在构建一个有两种类型用户的应用程序。专业用户及其客户。帐户类型完全不同,没有重叠。因此,注册为Pro的电子邮件仍可用于注册为客户端,如果Pro用户尝试使用客户端表单登录,则其帐户将不存在。
问题: Meteor自动防止在创建用户帐户时使用重复的电子邮件。我的想法是使用自定义验证来允许行为,并基本上创建两组不同的用户。以下是我为“专业”用户尝试验证的示例。
Accounts.onCreateUser(function(options, user) {
var email = user.email;
if (Meteor.users.find({emails: email, isPro : true}).count() > 0) {
throw new Meteor.Error(403, "This email address is already registered");
}
user.isPro = true;
return user;
});
但是流星仍然使用其默认的重复电子邮件拒绝。关于如何覆盖这种行为的任何想法,还是有更好的方法来创建两个不同的用户组?
答案 0 :(得分:0)
您可以在mongo shell中执行此操作
public void centerTitleAndSubtitle(Toolbar toolbar){
// Save current title and subtitle
final CharSequence originalTitle = toolbar.getTitle();
final CharSequence originalSubtitle = toolbar.getSubtitle();
// Temporarily modify title and subtitle to help detecting each
toolbar.setTitle("title");
toolbar.setSubtitle("subtitle");
for(int i = 0; i < toolbar.getChildCount(); i++){
View view = toolbar.getChildAt(i);
if(view instanceof TextView){
TextView textView = (TextView) view;
if(textView.getText().equals("title")){
// Customize title's TextView
Toolbar.LayoutParams params = new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER_HORIZONTAL;
textView.setLayoutParams(params);
} else if(textView.getText().equals("subtitle")){
// Customize subtitle's TextView
Toolbar.LayoutParams params = new Toolbar.LayoutParams(Toolbar.LayoutParams.WRAP_CONTENT, Toolbar.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER_HORIZONTAL;
textView.setLayoutParams(params);
}
}
// Restore title and subtitle
toolbar.setTitle(originalTitle);
toolbar.setSubtitle(originalSubtitle);
}
}
这样做可能不是最好的主意,可能会产生意想不到的后果。我也认为评论中讨论的解决方案会更好。