1
22
23 package com.liferay.portal.sharepoint;
24
25 import com.liferay.portal.kernel.dao.orm.QueryUtil;
26 import com.liferay.portal.kernel.util.StringPool;
27 import com.liferay.portal.model.Group;
28 import com.liferay.portal.model.Organization;
29 import com.liferay.portal.model.User;
30 import com.liferay.portal.service.GroupLocalServiceUtil;
31 import com.liferay.portal.service.OrganizationLocalServiceUtil;
32 import com.liferay.portal.service.UserServiceUtil;
33
34 import java.util.LinkedHashMap;
35 import java.util.List;
36
37
44 public class CompanySharepointStorageImpl extends BaseSharepointStorageImpl {
45
46 public Tree getFoldersTree(SharepointRequest sharepointRequest)
47 throws Exception {
48
49 Tree foldersTree = new Tree();
50
51 LinkedHashMap<String, Object> groupParams =
52 new LinkedHashMap<String, Object>();
53
54 groupParams.put("usersGroups", new Long(sharepointRequest.getUserId()));
55
56 List<Group> groups = GroupLocalServiceUtil.search(
57 sharepointRequest.getCompanyId(), null, null, groupParams,
58 QueryUtil.ALL_POS, QueryUtil.ALL_POS);
59
60 Group userGroup = GroupLocalServiceUtil.getUserGroup(
61 sharepointRequest.getCompanyId(), sharepointRequest.getUserId());
62
63 groups.add(userGroup);
64
65 List<Organization> organizations =
66 OrganizationLocalServiceUtil.getUserOrganizations(
67 sharepointRequest.getUserId());
68
69 for (Organization organization : organizations) {
70 groups.add(organization.getGroup());
71 }
72
73 for (Group group : groups) {
74 String path = getGroupPath(group);
75
76 foldersTree.addChild(getFolderTree(path));
77 }
78
79 foldersTree.addChild(getFolderTree(StringPool.BLANK));
80
81 return foldersTree;
82 }
83
84 protected String getGroupPath(Group group) throws Exception {
85 StringBuilder sb = new StringBuilder();
86
87 String name = group.getName();
88
89 long classPK = group.getClassPK();
90
91 if (group.isUser()) {
92 User user = UserServiceUtil.getUserById(classPK);
93
94 name = user.getFullName();
95 }
96 else if (group.isOrganization()) {
97 Organization organization =
98 OrganizationLocalServiceUtil.getOrganization(classPK);
99
100 name = organization.getName();
101 }
102
103 sb.append(name);
104 sb.append(StringPool.SPACE);
105 sb.append(StringPool.OPEN_BRACKET);
106 sb.append(group.getGroupId());
107 sb.append(StringPool.CLOSE_BRACKET);
108
109 return sb.toString();
110 }
111
112 }