将Meteor.users划分为不同的模式

时间:2015-04-20 20:14:27

标签: meteor

我想为我的网络应用程序提供不同类型的用户。他们将拥有普通用户的所有方法,但具有不同的模式,特别是settingsprofile。例如:

var UserBase = {
  emails: {
    type: [Object],
    optional: true
  },
  // ... etc not important
}

AdminSchema = new SimpleSchema(_.extend(UserBase, {
  profile: {
    type: AdminProfileSchema
  },
  settings: {
    type: AdminSettingsSchema
  }
}));

UserSchema = new SimpleSchema(_.extend(UserBase, { // yada yada });

// more or less what I want to do:
Meteor.users.attachSchema(AdminSchema, { role: "admin" });
Meteor.users.attachSchema(UserSchema, { role: "user"});

是否可以将不同的模式附加到Meteor.users,假设没有冲突?

1 个答案:

答案 0 :(得分:2)

我将两个模式(user,admin)作为主用户模式的子对象,如果没有设置则等于null,如下所示:

var UserSchema = {
  emails: {
    type: [Object],
    optional: true
  },
  // ... etc not important
  admin: {
    type: AdminSchema,
    optional: true
  },
  user: {
    type: UserSchema,
    optional: true
  }
}