【发布时间】:2016-12-20 18:25:49
【问题描述】:
我正在使用 JHipster 和 MongoDb 创建应用程序,并且正在尝试添加新角色。 我向 security/AuthoritiesConstants 添加了新常量,但在我的集合 jhi_authorities 中我没有看到变化。
有人知道如何将我的新角色添加到此集合中吗?
【问题讨论】:
我正在使用 JHipster 和 MongoDb 创建应用程序,并且正在尝试添加新角色。 我向 security/AuthoritiesConstants 添加了新常量,但在我的集合 jhi_authorities 中我没有看到变化。
有人知道如何将我的新角色添加到此集合中吗?
【问题讨论】:
您还必须将新权限添加到 MongoDb,请参阅 InitialSetupMigration.java,在此处添加它们或创建新迁移。
见doc
【讨论】:
创建新的@ChangeLg 并使用@ChangeSet 编写方法 像这个例子
@ChangeLog(order = "002")
public class AddOthersAuthorities {
@ChangeSet(order = "01", author = "initiator", id = "03-addOthersAuthorities")
public void addAuthorities(DB db) {
DBCollection authorityCollection = db.getCollection("jhi_authority");
// Role for super administration
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_SUPER_ADMIN")
.get());
// Role for company administration
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_COMPANY_ADMIN")
.get());
// Role for branch administration
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_BRANCH_ADMIN")
.get());
// Role for employee
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_EMPLOYEE")
.get());
// Role for registred customer
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_CUSTOMER")
.get());
// Role for non registred customer
authorityCollection.insert(
BasicDBObjectBuilder.start()
.add("_id", "ROLE_GUEST")
.get());
}
}
【讨论】: