Liferay get Organization by using User or get All Organizations in liferay database

本文介绍了一种从Liferay平台中通过用户及其所属组织结构来获取与组织关联的Twitter账号的方法。具体包括如何利用Liferay提供的API,如RenderRequest、ThemeDisplay、OrganizationLocalServiceUtil等来遍历组织层级并获取扩展属性中存储的Twitter账号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

This blog is just used to record methods I wrote, but they're useless for my project now. In case I need to use them in the future, I record them in the blog.


//In our MVCPortlet, we can get RenderRequest, when we get RenderRequest, we can get user and get user's organization hierarchy.

public static List<String> getTwitterScreenNames(RenderRequest renderRequest) {

List<String> twitterScreenNames = new ArrayList<String>();
ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest
.getAttribute(WebKeys.THEME_DISPLAY);
long userId = themeDisplay.getUserId();
try {
List<Organization> orgs = OrganizationLocalServiceUtil
.getUserOrganizations(userId);
for (Organization org : orgs) {
ExpandoBridge bridge = org.getExpandoBridge();
String screenName = (String) ExpandoValueLocalServiceUtil
.getData(bridge.getClassName(),
ExpandoTableConstants.DEFAULT_TABLE_NAME,
"twitter", org.getPrimaryKey());
twitterScreenNames.add(screenName);
while (org.getParentOrganizationId() != 0) {
org = org.getParentOrganization();
bridge = org.getExpandoBridge();
screenName = (String) ExpandoValueLocalServiceUtil.getData(
bridge.getClassName(),
ExpandoTableConstants.DEFAULT_TABLE_NAME,
"twitter", org.getPrimaryKey());
twitterScreenNames.add(screenName);
}
}
} catch (PortalException e) {
e.printStackTrace();
} catch (SystemException e) {
e.printStackTrace();
}
return twitterScreenNames;

}


//This method is to get all organization in liferay database.

public static List<String> getAllTwitterScreenNames()
throws SystemException, PortalException {
List<String> twitterScreenNames = new ArrayList<String>();
List<Organization> orgs = OrganizationLocalServiceUtil
.getOrganizations(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
for (Organization org : orgs) {
ExpandoBridge bridge = org.getExpandoBridge();
if (bridge.hasAttribute("twitter")) {
String screenName = (String) ExpandoValueLocalServiceUtil
.getData(bridge.getClassName(),
ExpandoTableConstants.DEFAULT_TABLE_NAME,
"twitter", org.getPrimaryKey());
twitterScreenNames.add(screenName);
while (org.getParentOrganizationId() != 0) {
org = org.getParentOrganization();
bridge = org.getExpandoBridge();
screenName = (String) ExpandoValueLocalServiceUtil.getData(
bridge.getClassName(),
ExpandoTableConstants.DEFAULT_TABLE_NAME,
"twitter", org.getPrimaryKey());
twitterScreenNames.add(screenName);
}
}
}
return twitterScreenNames;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值