【问题标题】:Adding new roles JHipster and MongoDb添加新角色 JHipster 和 MongoDb
【发布时间】:2016-12-20 18:25:49
【问题描述】:

我正在使用 JHipster 和 MongoDb 创建应用程序,并且正在尝试添加新角色。 我向 security/AuthoritiesConstants 添加了新常量,但在我的集合 jhi_authorities 中我没有看到变化。

有人知道如何将我的新角色添加到此集合中吗?

【问题讨论】:

    标签: mongodb jhipster


    【解决方案1】:

    您还必须将新权限添加到 MongoDb,请参阅 InitialSetupMigration.java,在此处添加它们或创建新迁移。 见doc

    【讨论】:

    • 如果我这样做,我将强制我的应用程序的每个部署都具有这些权限,我有一个更加动态的场景,所以我更喜欢一种我可以在每个部署的基础上决定的方式将是当局,我认为@Michał Styś 面临同样的问题。
    • 好的,那么你不能在java中使用常量,你应该实现你自己的角色管理或者等待这个特性或者贡献它。 github.com/jhipster/generator-jhipster/issues/1995
    • 这并不是因为您在代码中初始化了您的权限 (InitialSetupMigration),您的应用程序的每个部署都具有这些权限。您的代码可以将它们作为来自外部 application.yml 的属性读取
    【解决方案2】:

    创建新的@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());
        }
    
    }
    

    【讨论】:

    • 我应该在哪里创建这个文件?
    猜你喜欢
    • 2015-01-30
    • 2016-07-30
    • 1970-01-01
    • 2017-07-06
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2017-06-19
    相关资源
    最近更新 更多