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