From e8d6da28148202307849f162754cbb8af8b26e4f Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Tue, 15 Mar 2016 13:41:39 +0000 Subject: [PATCH] moved to version 2.0 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/custom-portal-handler@125277 82a268e6-3cf1-43bd-a215-b396298e98cf --- distro/descriptor.xml | 7 - pom.xml | 26 ++- .../communitymanager/GCubeSiteManager.java | 46 +++++ .../communitymanager/PortletsIdManager.java | 2 +- ...izationsUtil.java => SiteManagerUtil.java} | 85 +------- .../impl/CommunityManagerImpl.java | 195 ------------------ ...gerImpl.java => GCubeSiteManagerImpl.java} | 151 +++++++------- .../resources/default_logo.png | Bin 10081 -> 8378 bytes .../scopemanager/scopehelper/ScopeHelper.java | 141 ++++++------- 9 files changed, 221 insertions(+), 432 deletions(-) create mode 100644 src/main/java/org/gcube/portal/custom/communitymanager/GCubeSiteManager.java rename src/main/java/org/gcube/portal/custom/communitymanager/{OrganizationsUtil.java => SiteManagerUtil.java} (78%) delete mode 100644 src/main/java/org/gcube/portal/custom/communitymanager/impl/CommunityManagerImpl.java rename src/main/java/org/gcube/portal/custom/communitymanager/impl/{OrganizationManagerImpl.java => GCubeSiteManagerImpl.java} (70%) diff --git a/distro/descriptor.xml b/distro/descriptor.xml index c468f13..308f7f9 100644 --- a/distro/descriptor.xml +++ b/distro/descriptor.xml @@ -15,8 +15,6 @@ README LICENSE - INSTALL - MAINTAINERS changelog.xml 755 @@ -39,10 +37,5 @@ target/${build.finalName}.jar /${artifactId} - - ${distroDirectory}/svnpath.txt - /${artifactId} - true - \ No newline at end of file diff --git a/pom.xml b/pom.xml index bdf24c2..e24431d 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ org.gcube.portal custom-portal-handler - 1.8.0-SNAPSHOT + 2.0.0-SNAPSHOT jar Custom Portal Handler @@ -26,7 +26,7 @@ distro 1.7 1.7 - + 6.2.5 UTF-8 UTF-8 @@ -55,6 +55,7 @@ org.gcube.common.portal portal-manager + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) provided @@ -65,10 +66,31 @@ org.gcube.dvos usermanagement-core + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) com.liferay.portal portal-service + ${liferay.version} + provided + + + com.liferay.portal + util-bridges + ${liferay.version} + provided + + + com.liferay.portal + util-taglib + ${liferay.version} + provided + + + com.liferay.portal + util-java + ${liferay.version} + provided javax.portlet diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/GCubeSiteManager.java b/src/main/java/org/gcube/portal/custom/communitymanager/GCubeSiteManager.java new file mode 100644 index 0000000..7239214 --- /dev/null +++ b/src/main/java/org/gcube/portal/custom/communitymanager/GCubeSiteManager.java @@ -0,0 +1,46 @@ +package org.gcube.portal.custom.communitymanager; + +import org.gcube.portal.custom.communitymanager.components.GCUBESiteLayout; + +import com.liferay.portal.model.Organization; + + +/** + * + * @author Massimiliano Assante, massimiliano.assante@isti.cnr.it + * + */ +public interface GCubeSiteManager { + + /** + * + * @param rootVoName the voName + * @param voDesc - + * @return the id of the created VO + */ + long createVO(String rootVoName, String voDesc, GCUBESiteLayout siteLayout, String themeid); + /** + * + * @param voName the voName + * @param voDesc - + * @return the id of the created VO + */ + long createVO(String voName, String voDesc, long parentID, GCUBESiteLayout siteLayout, String themeid); + + /** + * + * @param rootVoName the voName + * @param voDesc - + * @return the organizationid of the created VO + */ + long createVRE(String voName, String voDesc, long parentid, GCUBESiteLayout siteLayout, String themeid); + /** + * + * @param username the screenname of the current user + * @param currOrg the organization in which to check the custom attribute + * @param attrToCheck the key to check + * @return true or false + */ + Boolean readOrganizationCustomAttribute(String username, Organization currOrg, String attrToCheck); + +} diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/PortletsIdManager.java b/src/main/java/org/gcube/portal/custom/communitymanager/PortletsIdManager.java index 34bfcc0..ec25f0f 100644 --- a/src/main/java/org/gcube/portal/custom/communitymanager/PortletsIdManager.java +++ b/src/main/java/org/gcube/portal/custom/communitymanager/PortletsIdManager.java @@ -128,7 +128,7 @@ public final class PortletsIdManager { Properties props = new Properties(); String toReturn = ""; try { - String propertyfile = OrganizationsUtil.getTomcatFolder()+"conf/gcube-portlets.properties"; + String propertyfile = SiteManagerUtil.getTomcatFolder()+"conf/gcube-portlets.properties"; File propsFile = new File(propertyfile); FileInputStream fis = new FileInputStream(propsFile); props.load( fis ); diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/OrganizationsUtil.java b/src/main/java/org/gcube/portal/custom/communitymanager/SiteManagerUtil.java similarity index 78% rename from src/main/java/org/gcube/portal/custom/communitymanager/OrganizationsUtil.java rename to src/main/java/org/gcube/portal/custom/communitymanager/SiteManagerUtil.java index 8a9018d..41c422d 100644 --- a/src/main/java/org/gcube/portal/custom/communitymanager/OrganizationsUtil.java +++ b/src/main/java/org/gcube/portal/custom/communitymanager/SiteManagerUtil.java @@ -4,17 +4,15 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import java.util.Locale; import java.util.Properties; import org.gcube.portal.custom.communitymanager.components.GCUBELayoutTab; import org.gcube.portal.custom.communitymanager.components.GCUBEPortlet; import org.gcube.portal.custom.communitymanager.components.GCUBESiteLayout; import org.gcube.vomanagement.usermanagement.UserManager; -import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayUserManager; +import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; @@ -33,15 +31,14 @@ import com.liferay.portal.service.CompanyLocalServiceUtil; import com.liferay.portal.service.LayoutLocalServiceUtil; import com.liferay.portal.service.PortletLocalServiceUtil; import com.liferay.portal.service.PortletPreferencesLocalServiceUtil; -import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserLocalServiceUtil; -public class OrganizationsUtil { +public class SiteManagerUtil { /** * */ - private static Log _log = LogFactoryUtil.getLog(OrganizationManager.class); + private static Log _log = LogFactoryUtil.getLog(GCubeSiteManager.class); /** * */ @@ -150,39 +147,7 @@ public class OrganizationsUtil { toReturn.add(new GCUBEPortlet(PortletsIdManager.LR_ACTIVITIES, PortletsIdManager.getLRPortletId(PortletsIdManager.LR_ACTIVITIES))); return toReturn; } - /** - * Create a Regular Manager Role for the community/Organization - * @param vreName - * @return - * @throws SystemException - * @throws PortalException - */ - public static Role addManagerRole(String vreName, String username) throws PortalException, SystemException { - Company company = getCompany(); - User user = validateUser(username); - String roleName = "VRE-Manager-" + vreName.replaceAll(" ", "-"); - Locale english = new Locale("en"); - HashMap roleNames = new HashMap(); - roleNames.put(english, roleName); - return RoleLocalServiceUtil.addRole(user.getUserId(), company.getCompanyId(), roleName, roleNames, "VRE Manager of " + vreName, LIFERAY_REGULAR_ROLE_ID); - } - - /** - * Create a Regular Manager Role for the community/Organization - * @param vreName - * @return - * @throws SystemException - * @throws PortalException - */ - public static Role addManagerRole(String roleName, String vreName, long userid) throws PortalException, SystemException { - Company company = getCompany(); - Locale english = new Locale("en"); - HashMap roleNames = new HashMap(); - roleNames.put(english, roleName); - return RoleLocalServiceUtil.addRole(userid, company.getCompanyId(), roleName, roleNames, "VRE Manager of " + vreName, LIFERAY_REGULAR_ROLE_ID); - } - - + /** * check if the user exists in the database and has AuthZ to perform the operation @@ -288,34 +253,13 @@ public class OrganizationsUtil { public boolean addUserToGroup(long groupid, String username) { UserManager uman = new LiferayUserManager(); try { - uman.assignUserToGroup(""+groupid, uman.getUserId(username)); + uman.assignUserToGroup(groupid, uman.getUserId(username)); } catch (Exception e) { e.printStackTrace(); return false; } return true; } - - /** - * Create a Regular Manager Role for the community - * @param vreName - * @return - * @throws PortalException - * @throws SystemException - */ - protected static Role createRole(String roleName, String vreName, long userid){ - try { - Company company = getCompany(); - String roletoAdd = roleName+"-" + vreName.replaceAll(" ", "-"); - return RoleLocalServiceUtil.addRole(userid, company.getCompanyId(), roletoAdd, null, roleName +" of " + vreName, LIFERAY_REGULAR_ROLE_ID); - } catch (PortalException e) { - e.printStackTrace(); - } catch (SystemException e) { - e.printStackTrace(); - } - return null; - } - /** * read the root VO name from a property file and retuns it */ @@ -325,7 +269,7 @@ public class OrganizationsUtil { String toReturn = ""; try { - String propertyfile = OrganizationsUtil.getTomcatFolder()+"conf/gcube-data.properties"; + String propertyfile = SiteManagerUtil.getTomcatFolder()+"conf/gcube-data.properties"; File propsFile = new File(propertyfile); FileInputStream fis = new FileInputStream(propsFile); props.load( fis); @@ -340,20 +284,5 @@ public class OrganizationsUtil { _log.debug("Returning Root VO Name: " + toReturn ); return toReturn; } - /** - * - * @param rolename - * @param organizationName - * @param user - * @return - * @throws SystemException - */ - private boolean hasRole(String rolename, String organizationName, User user) throws SystemException { - for (Role role : user.getRoles()) { - //_log.trace("COMPARING ROLE: " +role.getName() + " -> " + rolename + "-" + organizationName); - if (role.getName().compareTo( rolename + "-" + organizationName) == 0 ) - return true; - } - return false; - } + } diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/impl/CommunityManagerImpl.java b/src/main/java/org/gcube/portal/custom/communitymanager/impl/CommunityManagerImpl.java deleted file mode 100644 index f9c875a..0000000 --- a/src/main/java/org/gcube/portal/custom/communitymanager/impl/CommunityManagerImpl.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.gcube.portal.custom.communitymanager.impl; - -import java.util.List; - -import org.gcube.application.framework.core.session.ASLSession; -import org.gcube.portal.custom.communitymanager.CommunityManager; -import org.gcube.portal.custom.communitymanager.OrganizationsUtil; -import org.gcube.portal.custom.communitymanager.PortletsIdManager; -import org.gcube.portal.custom.communitymanager.components.GCUBELayoutTab; -import org.gcube.portal.custom.communitymanager.components.GCUBEPortlet; -import org.gcube.portal.custom.communitymanager.components.GCUBESiteLayout; -import org.gcube.portal.custom.communitymanager.types.GCUBELayoutType; -import org.gcube.vomanagement.usermanagement.GroupManager; -import org.gcube.vomanagement.usermanagement.exception.GroupRetrievalFault; -import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException; -import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; -import org.gcube.vomanagement.usermanagement.model.GroupModel; - -import com.liferay.portal.kernel.exception.PortalException; -import com.liferay.portal.kernel.exception.SystemException; -import com.liferay.portal.kernel.log.Log; -import com.liferay.portal.kernel.log.LogFactoryUtil; -import com.liferay.portal.model.Group; -import com.liferay.portal.model.Portlet; -import com.liferay.portal.model.User; -import com.liferay.portal.service.OrganizationLocalServiceUtil; -/** - * - * @author Massimiliano Assante, massimiliano.assante@isti.cnr.it - * @version 1.0 - * - */ -public class CommunityManagerImpl extends OrganizationsUtil implements CommunityManager { - - private static Log _log = LogFactoryUtil.getLog(CommunityManagerImpl.class); - /** - * - */ - public static final String CURR_ORG = "CURR_RE_NAME"; - - - ASLSession session = null; - /** - * - */ - private String screenName; - /** - * - */ - private static CommunityManagerImpl singleton; - - /** - * - * @return the singleton - */ - public static CommunityManagerImpl get() { - return singleton; - } - /** - * - * @param session the ASL session - */ - private CommunityManagerImpl(ASLSession session) { - this.session = session; - this.screenName = session.getUsername(); - singleton = this; - } - /** - * - * @param session the session - * @return the singleton - */ - public static CommunityManagerImpl getInstance(ASLSession session) { - return new CommunityManagerImpl(session); - } - - /** - * Use this method for creating VRE programmatically and associate a default layout to it - * - * @param communityName - - * @param communityDesc - - * @param parentID - - * @return the community created id - */ - public long createCommunity(String communityName, String communityDesc, long parentID) { - String username = ""; - String email = ""; - GCUBESiteLayout siteLayout = null; - try { - username = validateUser(screenName).getScreenName(); - email = validateUser(screenName).getEmailAddress(); - - siteLayout = new GCUBESiteLayout(getCompany(), communityName, email); - siteLayout.addTab(new GCUBELayoutTab("Home", GCUBELayoutType.ONE_COL, - new GCUBEPortlet("gCube Loggedin", PortletsIdManager.getLRPortletId(PortletsIdManager.GCUBE_LOGGEDIN)))); - siteLayout.addTab(new GCUBELayoutTab("Workspace", GCUBELayoutType.ONE_COL, - new GCUBEPortlet("gCube Workspace", PortletsIdManager.getLRPortletId(PortletsIdManager.WORKSPACE)))); - } catch (PortalException e) { - e.printStackTrace(); - } catch (SystemException e) { - e.printStackTrace(); - } - return createCommunity(username, communityName, communityDesc, siteLayout, parentID); - - } - /** - * Use this method for creating VRE programmatically and associate it a layout - * - * @param usernameCreator - - * @param communityName - - * @param communityDesc - - * @param siteLayout a GCUBESiteLayout instance to associate to it - * @param parentID the organization parent - * @return the community created id - */ - public long createCommunity(String usernameCreator, String communityName, String communityDesc, GCUBESiteLayout siteLayout, long parentID) { - String username; - Group tocreate = null; - try { - username = usernameCreator; - //create the group - tocreate = createVRE(communityName, communityDesc, parentID); - - // associate a layout to the group - createLayout(tocreate, validateUser(username), siteLayout); - } catch (PortalException e) { - e.printStackTrace(); - } catch (SystemException e) { - e.printStackTrace(); - } - - _log.debug("Returning Organization ID " + tocreate.getClassPK()); - return tocreate.getClassPK(); - } - - - - - - /** - * Create the group in the database - * - * @return - * @throws SystemException - * @throws PortalException - */ - private Group createVRE(String communityName, String communityDesc, long parentID) throws PortalException, SystemException { - - User creator = validateUser(screenName); - GroupManager gm = new LiferayGroupManager(); - - long groupid = parentID; - - - GroupModel currOrg = null; - try { - currOrg = gm.getGroup(""+groupid); - } catch (UserManagementSystemException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (GroupRetrievalFault e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - - _log.info("Creating VRE " + communityName + " SUBORG OF " +currOrg.getGroupName()); - GroupModel groupModel = null; - try { - groupModel = gm.createVRE(communityName, ""+groupid, ""+creator.getUserId(), "Description for "+communityName); - } catch (Exception e) { - e.printStackTrace(); - } - - _log.trace("Calling groupModel.getGroupId() "); - long curGroupid = Long.parseLong(groupModel.getGroupId()); - _log.trace("curGroupid " + curGroupid ); - - Group toReturn = OrganizationLocalServiceUtil.getOrganization(curGroupid).getGroup(); - _log.debug("GROUP created id:" + toReturn.getGroupId()); - return toReturn; - } - - - /** - * - * @param communityName - - * @return list of belonging portlet - */ - public List getGCubePortlets(String communityName) { - return null; - } - - -} diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/impl/OrganizationManagerImpl.java b/src/main/java/org/gcube/portal/custom/communitymanager/impl/GCubeSiteManagerImpl.java similarity index 70% rename from src/main/java/org/gcube/portal/custom/communitymanager/impl/OrganizationManagerImpl.java rename to src/main/java/org/gcube/portal/custom/communitymanager/impl/GCubeSiteManagerImpl.java index 1bbc0d7..1ee081e 100644 --- a/src/main/java/org/gcube/portal/custom/communitymanager/impl/OrganizationManagerImpl.java +++ b/src/main/java/org/gcube/portal/custom/communitymanager/impl/GCubeSiteManagerImpl.java @@ -2,15 +2,14 @@ package org.gcube.portal.custom.communitymanager.impl; import java.io.File; -import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List; -import org.gcube.portal.custom.communitymanager.OrganizationsUtil; import org.gcube.portal.custom.communitymanager.PortletsIdManager; +import org.gcube.portal.custom.communitymanager.SiteManagerUtil; import org.gcube.portal.custom.communitymanager.components.GCUBELayoutTab; import org.gcube.portal.custom.communitymanager.components.GCUBEPortlet; import org.gcube.portal.custom.communitymanager.components.GCUBESiteLayout; @@ -19,10 +18,11 @@ import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper; import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.RoleManager; import org.gcube.vomanagement.usermanagement.UserManager; -import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayGroupManager; -import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayRoleManager; -import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayUserManager; -import org.gcube.vomanagement.usermanagement.model.GroupModel; +import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; +import org.gcube.vomanagement.usermanagement.impl.LiferayRoleManager; +import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; +import org.gcube.vomanagement.usermanagement.model.GCubeGroup; +import org.gcube.vomanagement.usermanagement.model.GCubeRole; import com.liferay.portal.kernel.bean.BeanLocatorException; import com.liferay.portal.kernel.exception.PortalException; @@ -31,14 +31,14 @@ import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.model.Group; import com.liferay.portal.model.Organization; -import com.liferay.portal.model.Role; import com.liferay.portal.model.Theme; import com.liferay.portal.model.User; +import com.liferay.portal.security.auth.PrincipalThreadLocal; import com.liferay.portal.security.permission.PermissionChecker; import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil; import com.liferay.portal.security.permission.PermissionThreadLocal; +import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.service.LayoutSetLocalServiceUtil; -import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.ThemeLocalServiceUtil; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portlet.expando.model.ExpandoBridge; @@ -48,19 +48,19 @@ import com.liferay.portlet.expando.util.ExpandoBridgeFactoryUtil; * @author Massimiliano Assante, massimiliano.assante@isti.cnr.it * */ -public class OrganizationManagerImpl extends OrganizationsUtil { +public class GCubeSiteManagerImpl extends SiteManagerUtil { - private static Log _log = LogFactoryUtil.getLog(OrganizationManagerImpl.class); + private static Log _log = LogFactoryUtil.getLog(GCubeSiteManagerImpl.class); /** * FIXME public as generic resource */ - protected static final String ORGANIZATION_DEFAULT_LOGO = "/org/gcube/portal/custom/communitymanager/resources/default_logo.png"; + public static final String SITE_DEFAULT_LOGO = "/org/gcube/portal/custom/communitymanager/resources/default_logo.png"; private static final String CATEGORY = "Virtualgroup"; public static List getVirtualGroups() throws PortalException, SystemException { try { - ExpandoBridge expandoBridge = ExpandoBridgeFactoryUtil.getExpandoBridge(OrganizationsUtil.getCompany().getCompanyId(), Organization.class.getName()); + ExpandoBridge expandoBridge = ExpandoBridgeFactoryUtil.getExpandoBridge(SiteManagerUtil.getCompany().getCompanyId(), Organization.class.getName()); String[] groups = (String[]) expandoBridge.getAttributeDefault("Virtualgroup"); return Arrays.asList(groups); } catch (Exception e) { @@ -70,20 +70,19 @@ public class OrganizationManagerImpl extends OrganizationsUtil { } - public static String getVirtualGroupName(Organization organization){ + public static String getVirtualGroupName(Group site){ try { - long companyId = OrganizationsUtil.getCompany().getCompanyId(); _log.debug("Setting Thread Permission"); - User user = UserLocalServiceUtil.getUserByScreenName(companyId, ScopeHelper.getAdministratorUsername()); - PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user, false); - PermissionThreadLocal.setPermissionChecker(permissionChecker); - _log.debug("Setting Permission ok!"); + long userId = LiferayUserManager.getAdmin().getUserId(); + PrincipalThreadLocal.setName(userId); + PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(UserLocalServiceUtil.getUser(userId), false); + PermissionThreadLocal.setPermissionChecker(permissionChecker); - if (organization.getExpandoBridge().getAttribute(CATEGORY) == null || organization.getExpandoBridge().getAttribute(CATEGORY).equals("")) { + if (site.getExpandoBridge().getAttribute(CATEGORY) == null || site.getExpandoBridge().getAttribute(CATEGORY).equals("")) { _log.warn(String.format("Attribute %s not initialized.", CATEGORY)); return null; } else { - String[] values = (String[]) organization.getExpandoBridge().getAttribute(CATEGORY); + String[] values = (String[]) site.getExpandoBridge().getAttribute(CATEGORY); return values[0]; } } catch (Exception e) { @@ -101,14 +100,15 @@ public class OrganizationManagerImpl extends OrganizationsUtil { public static long createVO(String username, String voName, String voDesc, long parentid, GCUBESiteLayout siteLayout, String themeid) { Group voToCreate = null; try { - //create the Group - User creator = validateUser(username); GroupManager gm = new LiferayGroupManager(); - GroupModel groupModel = null; + GCubeGroup groupModel = null; _log.info("createVO " + voName + " with parentid " + parentid); - groupModel = gm.createVRE(voName, ""+parentid, ""+creator.getUserId(), "Description for "+voName); - long groupModelid = Long.parseLong(groupModel.getGroupId()); - voToCreate = OrganizationLocalServiceUtil.getOrganization(groupModelid).getGroup(); + if (parentid == 0) + groupModel = gm.createRootVO(voName, voDesc); + else + groupModel = gm.createVO(voName, parentid, voDesc); + long groupModelid = groupModel.getGroupId(); + voToCreate = GroupLocalServiceUtil.getGroup(groupModelid); //associate the layout to the group createLayout(voToCreate, validateUser(username), siteLayout); @@ -120,30 +120,36 @@ public class OrganizationManagerImpl extends OrganizationsUtil { _log.debug("LayoutSet Theme with id " + themeid + " Applied Correctly"); //update logo - InputStream is = OrganizationManagerImpl.class.getResourceAsStream(ORGANIZATION_DEFAULT_LOGO); - FileInputStream fis = new FileInputStream(writeTempLogo(is)); - LayoutSetLocalServiceUtil.updateLogo(voToCreate.getGroupId(), true, true, fis); + InputStream is = GCubeSiteManagerImpl.class.getResourceAsStream(SITE_DEFAULT_LOGO); + //FileInputStream fis = new FileInputStream(writeTempLogo(is)); + LayoutSetLocalServiceUtil.updateLogo(voToCreate.getGroupId(), true, true, is); _log.debug("Adding the Admin Role VO-Admin for this VO"); //add the role ADMIN UserManager uman = new LiferayUserManager(); - long uid = Long.parseLong(uman.getUserId(username)); - Role created = OrganizationsUtil.createRole("VO-Admin", voName, uid); - _log.debug("Admin Role VO-Admin Created Successfully"); - - uman.assignUserToGroup(""+voToCreate.getClassPK(), ""+uid); + long uid = uman.getUserId(username); + + + uman.assignUserToGroup(groupModel.getGroupId(), uid); _log.debug("Added user " + username + " to group " + voName + " with Success"); - _log.debug("Assigning Role: VO-Admin"); + _log.debug("Assigning Role: " + GCubeRole.VO_ADMIN_LABEL); RoleManager rm = new LiferayRoleManager(); - rm.assignRoleToUser(""+voToCreate.getClassPK(), ""+created.getRoleId(), ""+uid); + long roleId = -1; + for (GCubeRole role : rm.listAllGroupRoles()) { + if (role.getRoleName().compareTo(GCubeRole.VO_ADMIN_LABEL) == 0) { + roleId = role.getRoleId(); + break; + } + } + rm.assignRoleToUser(uid, groupModel.getGroupId(), roleId); _log.debug("Admin Role VO-Admin Associated to user " + username + " .... returning ..."); } catch (Exception e) { e.printStackTrace(); } - _log.info("Created" + voName + " with id " + voToCreate.getOrganizationId()); - return voToCreate.getOrganizationId(); + _log.info("Created" + voName + " with id " + voToCreate.getGroupId()); + return voToCreate.getGroupId(); } @@ -153,7 +159,7 @@ public class OrganizationManagerImpl extends OrganizationsUtil { * @param voDesc - * @return the id of the created VO */ - public static long createVO(String username, String voName, String voDesc, GCUBESiteLayout siteLayout, String themeid) { + public static long createRootVO(String username, String voName, String voDesc, GCUBESiteLayout siteLayout, String themeid) { return createVO(username, voName, voDesc, 0, siteLayout, themeid); } /** @@ -162,53 +168,54 @@ public class OrganizationManagerImpl extends OrganizationsUtil { * @param voDesc - * @return the organizationid of the created VO */ - public static long createVRE(String username, String voName, String voDesc, long parentid, GCUBESiteLayout siteLayout, String themeid) { - - Group voToCreate = null; - try { - //create the Group - User creator = validateUser(username); + public static long createVRE(String username, String vreName, String voDesc, long parentid, GCUBESiteLayout siteLayout, String themeid) { + Group vreToCreate = null; + try { GroupManager gm = new LiferayGroupManager(); - GroupModel groupModel = null; - _log.info("createVRE " + voName + " with parentid " + parentid); - groupModel = gm.createVRE(voName, ""+parentid, ""+creator.getUserId(), voDesc); - long groupModelid = Long.parseLong(groupModel.getGroupId()); - voToCreate = OrganizationLocalServiceUtil.getOrganization(groupModelid).getGroup(); - + GCubeGroup groupModel = null; + _log.info("createVRE " + vreName + " with parentid " + parentid); + groupModel = gm.createVRE(vreName, parentid, voDesc); + long groupModelid = groupModel.getGroupId(); + vreToCreate = GroupLocalServiceUtil.getGroup(groupModelid); //associate the layout to the group - createLayout(voToCreate, validateUser(username), siteLayout); + createLayout(vreToCreate, validateUser(username), siteLayout); Theme themeToApply = ThemeLocalServiceUtil.getTheme(getCompany().getCompanyId(), themeid, false); //update theme - LayoutSetLocalServiceUtil.updateLookAndFeel(voToCreate.getGroupId(), themeToApply.getThemeId(), "", "", false); + LayoutSetLocalServiceUtil.updateLookAndFeel(vreToCreate.getGroupId(), themeToApply.getThemeId(), "", "", false); _log.debug("LayoutSet Theme with id " + themeid + " Applied Correctly"); //update logo - InputStream is = OrganizationManagerImpl.class.getResourceAsStream(ORGANIZATION_DEFAULT_LOGO); - FileInputStream fis = new FileInputStream(writeTempLogo(is)); - LayoutSetLocalServiceUtil.updateLogo(voToCreate.getGroupId(), true, true, fis); + InputStream is = GCubeSiteManagerImpl.class.getResourceAsStream(SITE_DEFAULT_LOGO); + //FileInputStream fis = new FileInputStream(writeTempLogo(is)); + LayoutSetLocalServiceUtil.updateLogo(vreToCreate.getGroupId(), true, true, is); - _log.debug("Adding the MANAGER Role VRE-Manager for this VRE"); + _log.debug("Adding the Admin Role VRE-Admin for this VRE"); //add the role ADMIN UserManager uman = new LiferayUserManager(); - long uid = Long.parseLong(uman.getUserId(username)); - Role created = OrganizationsUtil.createRole("VRE-Manager", voName, uid); - _log.debug("Admin Role VRE-Manager Created Successfully"); + long uid = uman.getUserId(username); + + + uman.assignUserToGroup(groupModel.getGroupId(), uid); + _log.debug("Added user " + username + " to group " + vreName + " with Success"); - uman.assignUserToGroup(""+voToCreate.getClassPK(), ""+uid); - _log.debug("Added user " + username + " to group " + voName + " with Success"); - - _log.debug("Assigning Role: VRE-Manager"); + _log.debug("Assigning Role: " + GCubeRole.VRE_MANAGER_LABEL); RoleManager rm = new LiferayRoleManager(); - rm.assignRoleToUser(""+voToCreate.getClassPK(), ""+created.getRoleId(), ""+uid); + long roleId = -1; + for (GCubeRole role : rm.listAllGroupRoles()) { + if (role.getRoleName().compareTo(GCubeRole.VRE_MANAGER_LABEL) == 0) { + roleId = role.getRoleId(); + break; + } + } + rm.assignRoleToUser(uid, groupModel.getGroupId(), roleId); _log.debug("Admin Role VRE-Manager Associated to user " + username + " .... returning ..."); - } catch (Exception e) { e.printStackTrace(); } - _log.info("Created" + voName + " with id " + voToCreate.getOrganizationId()); - return voToCreate.getOrganizationId(); + _log.info("Created" + vreName + " with id " + vreToCreate.getGroupId()); + return vreToCreate.getOrganizationId(); } /** @@ -220,7 +227,7 @@ public class OrganizationManagerImpl extends OrganizationsUtil { public static GCUBESiteLayout getBaseLayout(String voName, boolean isVO, String username) throws PortalException, SystemException { GCUBESiteLayout siteLayout = null; String email = validateUser(username).getEmailAddress(); - siteLayout = new GCUBESiteLayout(OrganizationManagerImpl.getCompany(), voName, email); + siteLayout = new GCUBESiteLayout(GCubeSiteManagerImpl.getCompany(), voName, email); siteLayout.addTab(new GCUBELayoutTab(voName, GCUBELayoutType.ONE_COL, new GCUBEPortlet("gCube Loggedin", PortletsIdManager.getLRPortletId(PortletsIdManager.GCUBE_LOGGEDIN)))); @@ -281,14 +288,14 @@ public class OrganizationManagerImpl extends OrganizationsUtil { } try { - long companyId = OrganizationsUtil.getCompany().getCompanyId(); + long companyId = SiteManagerUtil.getCompany().getCompanyId(); _log.trace("Setting Thread Permission"); User user = UserLocalServiceUtil.getUserByScreenName(companyId, ScopeHelper.getAdministratorUsername()); PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user, false); PermissionThreadLocal.setPermissionChecker(permissionChecker); _log.trace("Setting Permission ok!"); - User currentUser = OrganizationsUtil.validateUser(username); + User currentUser = SiteManagerUtil.validateUser(username); if (currOrg.getExpandoBridge().getAttribute(attrToCheck) == null || currOrg.getExpandoBridge().getAttribute(attrToCheck).equals("")) { _log.trace("Attribute " + attrToCheck + " must be initialized"); setOrgCustomAttribute(username, currOrg, attrToCheck); @@ -328,7 +335,7 @@ public class OrganizationManagerImpl extends OrganizationsUtil { return; } try { - long companyId = OrganizationsUtil.getCompany().getCompanyId(); + long companyId = SiteManagerUtil.getCompany().getCompanyId(); _log.trace("Setting Thread Permission"); User user = UserLocalServiceUtil.getUserByScreenName(companyId, ScopeHelper.getAdministratorUsername()); PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user, false); diff --git a/src/main/java/org/gcube/portal/custom/communitymanager/resources/default_logo.png b/src/main/java/org/gcube/portal/custom/communitymanager/resources/default_logo.png index 5950b41fe2361d24142a7ed104428fbd393bd6b4..46c103825edd63890c665db9a49a96db054fb58a 100644 GIT binary patch delta 7792 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 UalQXF$si>;Rb<&(X|v$}2M|q?`v3p{ delta 9530 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 diff --git a/src/main/java/org/gcube/portal/custom/scopemanager/scopehelper/ScopeHelper.java b/src/main/java/org/gcube/portal/custom/scopemanager/scopehelper/ScopeHelper.java index 2aa4df2..909bc69 100644 --- a/src/main/java/org/gcube/portal/custom/scopemanager/scopehelper/ScopeHelper.java +++ b/src/main/java/org/gcube/portal/custom/scopemanager/scopehelper/ScopeHelper.java @@ -1,11 +1,8 @@ package org.gcube.portal.custom.scopemanager.scopehelper; -import static org.gcube.common.authorization.client.Constants.authorizationService; - import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -16,20 +13,20 @@ import org.gcube.application.framework.core.session.ASLSession; import org.gcube.application.framework.core.session.SessionManager; import org.gcube.application.framework.core.util.GenderType; import org.gcube.common.portal.PortalContext; -import org.gcube.common.scope.api.ScopeProvider; -import org.gcube.portal.custom.communitymanager.OrganizationsUtil; +import org.gcube.portal.custom.communitymanager.SiteManagerUtil; +import org.gcube.vomanagement.usermanagement.GroupManager; +import org.gcube.vomanagement.usermanagement.exception.GroupRetrievalFault; +import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException; +import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; +import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.WebKeys; -import com.liferay.portal.model.Group; -import com.liferay.portal.model.Organization; import com.liferay.portal.model.Role; import com.liferay.portal.model.User; -import com.liferay.portal.service.GroupLocalServiceUtil; -import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.theme.ThemeDisplay; @@ -38,20 +35,20 @@ import com.liferay.portal.theme.ThemeDisplay; public class ScopeHelper { public static final String USERNAME_ATTRIBUTE = "username"; - + public static final String CURR_ORG = "CURR_RE_NAME"; public static final String USER_FULL_NAME_ATTRIBUTE = "USER_FULL_NAME"; public static final String USER_EMAIL_ATTRIBUTE = "USER_EMAIL"; public static final String USER_AVATAR_ID_ATTRIBUTE = "USER_AVATAR_ID"; public static final String USER_GENDER_ATTRIBUTE = "USER_GENDER"; - + public static final String ASSERTION_ID = "assertionID"; - + /** * */ - public static final String ROOT_ORG = "rootorganization"; + public static final String ROOT_VO = "rootVO"; - public static final String CURR_ORG = "CURR_RE_NAME"; + public static final String CURR_RESEARCH_ENV = "CURR_RE_NAME"; public static final String MAIL = "notificationSenderEmail"; @@ -72,30 +69,25 @@ public class ScopeHelper { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); request.getPortletSession().setAttribute(WebKeys.THEME_DISPLAY, themeDisplay, PortletSession.APPLICATION_SCOPE); User user = null; - Group currentGroup = null; - Organization curOrg = null; - + GCubeGroup currentGroup = null; try { user = UserLocalServiceUtil.getUser(userid); - currentGroup = GroupLocalServiceUtil.getGroup(themeDisplay.getLayout().getGroup().getGroupId()); - // the group MUST BE an Organization - if (currentGroup.isOrganization()) { - long organizationId = currentGroup.getClassPK(); - curOrg = OrganizationLocalServiceUtil.getOrganization(organizationId); + GroupManager gm = new LiferayGroupManager(); + long groupId = themeDisplay.getLayout().getGroup().getGroupId(); + currentGroup = gm.getGroup(groupId); - if (curOrg.isRoot()) { - scopeToSet = "/"+curOrg.getName(); - } else if (isVO(curOrg)) { - scopeToSet = "/"+curOrg.getParentOrganization().getName()+"/"+curOrg.getName(); - } else { //is a VRE - Organization vo = curOrg.getParentOrganization(); - scopeToSet = "/"+vo.getParentOrganization().getName()+"/"+vo.getName()+"/"+curOrg.getName(); - } - } else { // + boolean isInfrastructureScope = false; + if (gm.isRootVO(groupId)) { + scopeToSet = "/"+PortalContext.getConfiguration().getInfrastructureName(); + } + else if (gm.isVO(groupId) || gm.isVRE(groupId)) { + scopeToSet = gm.getInfrastructureScope(groupId); + isInfrastructureScope = true; + } else { scopeToSet = "PORTAL"; - _log.info("Not an organization, scopeToSet set to PORTAL"); + _log.info("Not a VO or VRE, scopeToSet set to PORTAL"); } @@ -108,18 +100,17 @@ public class ScopeHelper { request.getPortletSession().setAttribute(username_attr, username, PortletSession.APPLICATION_SCOPE); - request.getPortletSession().setAttribute(CURR_ORG, curOrg, PortletSession.APPLICATION_SCOPE); + request.getPortletSession().setAttribute(CURR_RESEARCH_ENV, currentGroup, PortletSession.APPLICATION_SCOPE); - if (curOrg != null) { - SessionManager.getInstance().getASLSession(sessionID, username).setGroupModelInfos(curOrg.getName(), curOrg.getOrganizationId()); + if (isInfrastructureScope) { + SessionManager.getInstance().getASLSession(sessionID, username).setGroupModelInfos(currentGroup.getGroupName(), groupId); SessionManager.getInstance().getASLSession(sessionID, username).setScope(scopeToSet); _log.info("CONTEXT INITIALIZED CORRECTLY SCOPE: " + scopeToSet); } else { - String rootVO = getRootConfigFromGCore(); - _log.info("CONTEXT INITIALIZED CORRECTLY OUTSIDE VREs, setting rootvo as scope: " + rootVO); - scopeToSet = "/"+rootVO; + scopeToSet = "/"+PortalContext.getConfiguration().getInfrastructureName(); + _log.info("CONTEXT INITIALIZED CORRECTLY OUTSIDE VREs, set rootvo as scope: " + scopeToSet); SessionManager.getInstance().getASLSession(sessionID, username).setScope(scopeToSet); } //add the social information needed by apps @@ -132,9 +123,12 @@ public class ScopeHelper { SessionManager.getInstance().getASLSession(sessionID, username).setUserEmailAddress(email); SessionManager.getInstance().getASLSession(sessionID, username).setUserAvatarId(thumbnailURL); SessionManager.getInstance().getASLSession(sessionID, username).setUserGender(isMale? GenderType.MALE : GenderType.FEMALE); - + setAuthorizationToken(SessionManager.getInstance().getASLSession(sessionID, username)); - + } catch (UserManagementSystemException e) { + e.printStackTrace(); + } catch (GroupRetrievalFault e) { + e.printStackTrace(); } catch (PortalException e) { e.printStackTrace(); } catch (SystemException e) { @@ -144,26 +138,26 @@ public class ScopeHelper { } private final static String DEFAULT_ROLE = "OrganizationMember"; private final static String TEST_USER = "test.user"; - + private static void setAuthorizationToken(ASLSession session) { - - String username = session.getUsername(); - _log.debug("Generating token"); - String managerName = "lucio.lelii"; - if (username.compareTo(TEST_USER) == 0) - return; - String scope = session.getScope(); - ScopeProvider.instance.set(scope); - _log.debug("calling service token on scope " + scope); - List userRoles = new ArrayList<>(); - userRoles.add(DEFAULT_ROLE); - if (username.compareTo("lucio.lelii")==0) - userRoles.add("VRE-Manager"); - session.setSecurityToken(null); - String token = authorizationService().build().generate(session.getUsername(), userRoles); - _log.debug("received token: "+token); - session.setSecurityToken(token); - _log.info("Security token set in session for: "+username + " on " + scope); + //TODO: + // String username = session.getUsername(); + // _log.debug("Generating token"); + // String managerName = "lucio.lelii"; + // if (username.compareTo(TEST_USER) == 0) + // return; + // String scope = session.getScope(); + // ScopeProvider.instance.set(scope); + // _log.debug("calling service token on scope " + scope); + // List userRoles = new ArrayList<>(); + // userRoles.add(DEFAULT_ROLE); + // if (username.compareTo("lucio.lelii")==0) + // userRoles.add("VRE-Manager"); + // session.setSecurityToken(null); + // String token = authorizationService().build().generate(session.getUsername(), userRoles); + // _log.debug("received token: "+token); + // session.setSecurityToken(token); + // _log.info("Security token set in session for: "+username + " on " + scope); } /** * read the root VO name from a property file and retuns it @@ -174,7 +168,7 @@ public class ScopeHelper { String toReturn = ""; try { - String propertyfile = OrganizationsUtil.getTomcatFolder()+"conf/gcube-data.properties"; + String propertyfile = SiteManagerUtil.getTomcatFolder()+"conf/gcube-data.properties"; File propsFile = new File(propertyfile); FileInputStream fis = new FileInputStream(propsFile); props.load( fis); @@ -193,26 +187,13 @@ public class ScopeHelper { } return toReturn; } - /** - * - * @param currentGroup - * @return true id the organization is a VO - * @throws SystemException - * @throws PortalException - * @throws SystemException . - * @throws PortalException . - */ - private static boolean isVO(Organization currentOrg) throws PortalException, SystemException { - return (currentOrg.getParentOrganization().getParentOrganization() == null); - } - /** * return the infrastructure name */ public static String getRootConfigFromGCore() { return PortalContext.getConfiguration().getInfrastructureName(); } - + /** * return one of the Administrators Username from LiferayDB */ @@ -221,10 +202,16 @@ public class ScopeHelper { String toReturn = ""; try { - Role adminRole = RoleLocalServiceUtil.getRole(OrganizationsUtil.getCompany().getCompanyId(),"Administrator"); + Role adminRole = RoleLocalServiceUtil.getRole(SiteManagerUtil.getCompany().getCompanyId(),"Administrator"); List adminUsers = UserLocalServiceUtil.getRoleUsers(adminRole.getRoleId()); - if (adminUsers != null && adminUsers.size() > 0) - toReturn = adminUsers.get(0).getScreenName(); + if (adminUsers != null && adminUsers.size() > 0) { + for (User user : adminUsers) { + if (user.isActive()) { + toReturn = adminUsers.get(0).getScreenName(); + break; + } + } + } else _log.warn("No users with Administrator Role in this portal!"); }