liferay 7用OSGi的方式修改默认权限

事先声明,支持这一功能的新版本还没有发布,2017年5月份才支持的

1.以前在62的时候是通过修改ext项目进行修改

2.现在在70可以通过Module Fragment项目进行修改

相关文件:现在出现在这个xml文件中的默认权限还没有挪成OSGi模式,不能用Module Fragement项目进行修改

那么哪些是可以通过这种方式修改呢?那就是从这个xml中被挪走的都是可以进行修改的

然后如何修改呢,举个例子

1.先用liferay IDE创建一个Module Fragment的项目

2.选择com.liferay.bookmarks.web作为Host-OSGi bundle

bnd文件现在长这样

Bundle-Name: test-permission
Bundle-SymbolicName: test.permission
Bundle-Version: 1.0.0
Fragment-Host: com.liferay.bookmarks.web;bundle-version="1.0.23"

3.然后在src/main/resources下添加portlet-ext.properties文件,内容如下:

resource.actions.configs=resource-actions/default.xml,resource-actions/default-ext.xml

4.最后在src/main/resources下添加resource-actions/default.xml加上你想要修改的内容,我想加一个action上去,所以稍微改了一下

<?xml version="1.0"?>
<!DOCTYPE resource-action-mapping PUBLIC "-//Liferay//DTD Resource Action Mapping 7.0.0//EN" "http://www.liferay.com/dtd/liferay-resource-action-mapping_7_0_0.dtd">

<resource-action-mapping>
    <model-resource>
        <model-name>com.liferay.bookmarks.model.BookmarksEntry</model-name>
        <portlet-ref>
        </portlet-ref>
        <permissions>
            <supports>
                <action-key>TEST-PERMISSION</action-key>
            </supports>
            <guest-defaults>
            </guest-defaults>
            <guest-unsupported>
            </guest-unsupported>
        </permissions>
    </model-resource>
</resource-action-mapping>

然后就可以部署上去了(ps:现在支持这一功能的portal还没发布,以后可以试试)

5.最后我们来看一下效果,在Control Panel->Users->Roles->User->Define Permission->Site Administration->Bookmarks可以找到我们新加的Action

Show u the code

原文地址:https://www.cnblogs.com/hibou/p/6952603.html