Skip to content
This repository has been archived by the owner on Apr 15, 2021. It is now read-only.

Commit

Permalink
Merge branch fb_us7047
Browse files Browse the repository at this point in the history
  • Loading branch information
badziakp committed Mar 8, 2016
2 parents 3b2ebd6 + 587cdc5 commit d42ec9a
Show file tree
Hide file tree
Showing 20 changed files with 782 additions and 204 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright FUJITSU LIMITED 2016-->

<dataset>
<UserGroupToInvisibleProduct tkey="10000" version="0" product_tkey="1" usergroup_tkey="1" forallusers="TRUE" />
</dataset>
14 changes: 14 additions & 0 deletions oscm-database-unittests/javares/setup_02_08_14_to_02_08_15.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright FUJITSU LIMITED 2016 -->

<dataset>
<Organization tkey="111" version="0" organizationid="SUPPLIER" name="TP1" registrationdate="0" locale="en"
cutoffday="1" />
<Technicalproduct tkey="1" version="0" technicalproductid="tpid_1" organizationkey="111"
provisioningurl="url" billingidentifier="NATIVE_BILLING" />
<Product tkey="1" template_tkey="[NULL]" targetcustomer_tkey="[NULL]" version="0" productid="pid_1"
vendorkey="111" provisioningdate="0" status="ACTIVE" technicalproduct_tkey="1" type="TEMPLATE" />
<UserGroup tkey="1" version="0" name="default" description="Default Unit" isdefault="TRUE"
organization_tkey="111" />
<UserGroupToInvisibleProduct tkey="10000" version="0" product_tkey="1" usergroup_tkey="1" />
</dataset>
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/*******************************************************************************
*
* Copyright FUJITSU LIMITED 2016
*
* Creation Date: 01.02.16 10:00
*
******************************************************************************/
package org.oscm.database;

import java.net.URL;

import org.oscm.setup.DatabaseVersionInfo;

public class SchemaUpgrade_02_08_14_to_02_08_15_IT extends
SchemaUpgradeTestBase {

public SchemaUpgrade_02_08_14_to_02_08_15_IT() {
super(new DatabaseVersionInfo(2, 8, 14), new DatabaseVersionInfo(2, 8,
15));
}

@Override
protected URL getSetupDataset() {
return getClass().getResource("/setup_02_08_14_to_02_08_15.xml");
}

@Override
protected URL getExpectedDataset() {
return getClass().getResource("/expected_02_08_14_to_02_08_15.xml");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@

import org.junit.Assert;
import org.junit.Test;

import org.oscm.test.ReflectiveClone;
import org.oscm.test.data.Organizations;
import org.oscm.validator.ADMValidator;
import org.oscm.internal.types.enumtypes.OrganizationRoleType;
import org.oscm.internal.types.exception.ObjectNotFoundException;
import org.oscm.internal.types.exception.SaaSSystemException;
import org.oscm.test.ReflectiveClone;
import org.oscm.test.data.Organizations;
import org.oscm.validator.ADMValidator;

/**
* Test of the UserGroup domain object.
Expand Down Expand Up @@ -368,6 +367,7 @@ private UserGroupToInvisibleProduct prepareUserGroupToInvisibleProduct(
String id) {
UserGroupToInvisibleProduct userGroupToInvisibleProduct = new UserGroupToInvisibleProduct();
userGroupToInvisibleProduct.setProduct(prepareProduct(id));
userGroupToInvisibleProduct.setForallusers(false);
return userGroupToInvisibleProduct;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,11 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import org.oscm.test.data.Organizations;
import org.oscm.test.data.Products;
import org.oscm.internal.types.enumtypes.OrganizationRoleType;
import org.oscm.internal.types.exception.NonUniqueBusinessKeyException;
import org.oscm.internal.types.exception.ObjectNotFoundException;
import org.oscm.test.data.Organizations;
import org.oscm.test.data.Products;

/**
* Tests for the domain object relationship user group to product
Expand Down Expand Up @@ -115,7 +114,7 @@ private void doTestAdd() throws Exception {
UserGroupToInvisibleProduct uip = new UserGroupToInvisibleProduct();
uip.setUserGroup(userGroup);
uip.setProduct(p);

uip.setForallusers(true);
mgr.persist(uip);
}

Expand Down
2 changes: 2 additions & 0 deletions oscm-devruntime/javares/sql/upd_postgresql_02_08_15.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
-- add new column forallusers to usergrouptoinvisibleproduct
ALTER TABLE usergrouptoinvisibleproduct ADD COLUMN forallusers BOOLEAN NOT NULL DEFAULT TRUE;
28 changes: 14 additions & 14 deletions oscm-domainobjects/javasrc/org/oscm/domobjects/UserGroup.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,20 @@
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "name",
"organization_tkey" }))
@NamedQueries({
@NamedQuery(name = "UserGroup.findByBusinessKey", query = "SELECT obj FROM UserGroup obj WHERE obj.dataContainer.name = :name AND obj.organization_tkey = :organization_tkey ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByOrganizationKeyWithoutDefault", query = "SELECT obj FROM UserGroup obj WHERE obj.organization_tkey = :organization_tkey AND obj.dataContainer.isDefault = FALSE ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByOrganizationKey", query = "SELECT obj FROM UserGroup obj WHERE obj.organization_tkey = :organization_tkey ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.countUser", query = "SELECT COUNT(g2u.platformuser_tkey) FROM UserGroupToUser g2u WHERE g2u.usergroup_tkey = :usergroup_tkey"),
@NamedQuery(name = "UserGroup.countUserForDefaultGroup", query = "SELECT COUNT(p) FROM PlatformUser p WHERE p.organization.dataContainer.organizationId = :organizationId"),
@NamedQuery(name = "UserGroup.findAssignedUserIds", query = "SELECT pu.dataContainer.userId FROM UserGroupToUser g2u, PlatformUser pu WHERE g2u.usergroup_tkey = :usergroup_tkey AND pu = g2u.platformuser"),
@NamedQuery(name = "UserGroup.countUserGroup", query = "SELECT COUNT(g2u1.userGroup) FROM UserGroupToUser g2u1 WHERE g2u1.platformuser_tkey = :user_tkey"),
@NamedQuery(name = "UserGroup.findByUserIdWithoutDefault", query = "SELECT obj FROM UserGroup obj, UserGroupToUser g2u, PlatformUser pu WHERE pu.dataContainer.userId=:userId AND pu = g2u.platformuser AND g2u.userGroup = obj AND obj.dataContainer.isDefault = FALSE ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByUserId", query = "SELECT obj FROM UserGroup obj, UserGroupToUser g2u, PlatformUser pu WHERE pu.dataContainer.userId=:userId AND pu = g2u.platformuser AND g2u.userGroup = obj ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findInvisibleProductKeys", query = "SELECT u2p.product_tkey FROM UserGroupToInvisibleProduct u2p WHERE u2p.userGroup IN (SELECT g2u1.userGroup FROM UserGroupToUser g2u1 WHERE g2u1.platformuser_tkey = :user_tkey AND g2u1.userGroup.dataContainer.isDefault = FALSE) AND u2p.userGroup.dataContainer.isDefault = FALSE GROUP BY u2p.product_tkey HAVING COUNT(u2p.product_tkey) = (SELECT COUNT(g2u) FROM UserGroupToUser g2u WHERE g2u.platformuser_tkey = :user_tkey AND g2u.userGroup.dataContainer.isDefault = FALSE)"),
@NamedQuery(name = "UserGroup.findInvisibleProductKeysForGroup", query = "SELECT u2p.product_tkey FROM UserGroupToInvisibleProduct u2p WHERE u2p.usergroup_tkey = :usergroup_tkey"),
@NamedQuery(name = "UserGroup.findByUserWithRole", query = "SELECT ug FROM UserGroup ug, UserGroupToUser ugtu, UnitRoleAssignment ura WHERE ug=ugtu.userGroup AND ugtu = ura.userGroupToUser AND ugtu.platformuser_tkey = :platformuser_tkey AND ura.unituserrole_tkey = :unituserrole_tkey"),
@NamedQuery(name = "UserGroup.findByUserWithRoleWithoutDefault", query = "SELECT ug FROM UserGroup ug, UserGroupToUser ugtu, UnitRoleAssignment ura WHERE ug=ugtu.userGroup AND ugtu = ura.userGroupToUser AND ugtu.platformuser_tkey = :platformuser_tkey AND ura.unituserrole_tkey = :unituserrole_tkey AND ug.dataContainer.isDefault = FALSE")
})
@NamedQuery(name = "UserGroup.findByBusinessKey", query = "SELECT obj FROM UserGroup obj WHERE obj.dataContainer.name = :name AND obj.organization_tkey = :organization_tkey ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByOrganizationKeyWithoutDefault", query = "SELECT obj FROM UserGroup obj WHERE obj.organization_tkey = :organization_tkey AND obj.dataContainer.isDefault = FALSE ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByOrganizationKey", query = "SELECT obj FROM UserGroup obj WHERE obj.organization_tkey = :organization_tkey ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.countUser", query = "SELECT COUNT(g2u.platformuser_tkey) FROM UserGroupToUser g2u WHERE g2u.usergroup_tkey = :usergroup_tkey"),
@NamedQuery(name = "UserGroup.countUserForDefaultGroup", query = "SELECT COUNT(p) FROM PlatformUser p WHERE p.organization.dataContainer.organizationId = :organizationId"),
@NamedQuery(name = "UserGroup.findAssignedUserIds", query = "SELECT pu.dataContainer.userId FROM UserGroupToUser g2u, PlatformUser pu WHERE g2u.usergroup_tkey = :usergroup_tkey AND pu = g2u.platformuser"),
@NamedQuery(name = "UserGroup.countUserGroup", query = "SELECT COUNT(g2u1.userGroup) FROM UserGroupToUser g2u1 WHERE g2u1.platformuser_tkey = :user_tkey"),
@NamedQuery(name = "UserGroup.findByUserIdWithoutDefault", query = "SELECT obj FROM UserGroup obj, UserGroupToUser g2u, PlatformUser pu WHERE pu.dataContainer.userId=:userId AND pu = g2u.platformuser AND g2u.userGroup = obj AND obj.dataContainer.isDefault = FALSE ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findByUserId", query = "SELECT obj FROM UserGroup obj, UserGroupToUser g2u, PlatformUser pu WHERE pu.dataContainer.userId=:userId AND pu = g2u.platformuser AND g2u.userGroup = obj ORDER BY obj.dataContainer.name ASC"),
@NamedQuery(name = "UserGroup.findInvisibleProductKeys", query = "SELECT u2p.product_tkey FROM UserGroupToInvisibleProduct u2p WHERE u2p.userGroup IN (SELECT g2u1.userGroup FROM UserGroupToUser g2u1 WHERE g2u1.platformuser_tkey = :user_tkey AND g2u1.userGroup.dataContainer.isDefault = FALSE) AND u2p.userGroup.dataContainer.isDefault = FALSE GROUP BY u2p.product_tkey HAVING COUNT(u2p.product_tkey) = (SELECT COUNT(g2u) FROM UserGroupToUser g2u WHERE g2u.platformuser_tkey = :user_tkey AND g2u.userGroup.dataContainer.isDefault = FALSE)"),
@NamedQuery(name = "UserGroup.findInvisibleProductKeysForGroup", query = "SELECT u2p.product_tkey FROM UserGroupToInvisibleProduct u2p WHERE u2p.usergroup_tkey = :usergroup_tkey"),
@NamedQuery(name = "UserGroup.findByUserWithRole", query = "SELECT ug FROM UserGroup ug, UserGroupToUser ugtu, UnitRoleAssignment ura WHERE ug=ugtu.userGroup AND ugtu = ura.userGroupToUser AND ugtu.platformuser_tkey = :platformuser_tkey AND ura.unituserrole_tkey = :unituserrole_tkey"),
@NamedQuery(name = "UserGroup.findByUserWithRoleWithoutDefault", query = "SELECT ug FROM UserGroup ug, UserGroupToUser ugtu, UnitRoleAssignment ura WHERE ug=ugtu.userGroup AND ugtu = ura.userGroupToUser AND ugtu.platformuser_tkey = :platformuser_tkey AND ura.unituserrole_tkey = :unituserrole_tkey AND ug.dataContainer.isDefault = FALSE"),
@NamedQuery(name = "UserGroup.getInvisibleProducts", query = "SELECT u2p FROM UserGroupToInvisibleProduct u2p WHERE u2p.usergroup_tkey = :usergroup_tkey") })
@BusinessKey(attributes = { "name", "organization_tkey" })
public class UserGroup extends DomainObjectWithHistory<UserGroupData> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ public UserGroupToInvisibleProduct() {
@JoinColumn(name = "product_tkey")
private Product product;

private boolean forallusers;

public long getUsergroup_tkey() {
return usergroup_tkey;
}
Expand Down Expand Up @@ -92,4 +94,12 @@ public void setProduct(Product product) {
}
}

public boolean isForallusers() {
return forallusers;
}

public void setForallusers(boolean forallusers) {
this.forallusers = forallusers;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class POUserGroup extends BasePO {
private String unitChecked;
private boolean unitSelected;
private List<POUserInUnit> usersAssignedToUnit = new ArrayList<POUserInUnit>();
private List<POUserGroupToInvisibleProduct> invisibleProducts = new ArrayList<POUserGroupToInvisibleProduct>();

public List<POService> getVisibleServices() {
return visibleServices;
Expand Down Expand Up @@ -146,4 +147,18 @@ public List<POUserInUnit> getUsersAssignedToUnit() {
public void setUsersAssignedToUnit(List<POUserInUnit> usersAssignedToUnit) {
this.usersAssignedToUnit = usersAssignedToUnit;
}

/**
* @return the invisibleProducts
*/
public List<POUserGroupToInvisibleProduct> getInvisibleProducts() {
return invisibleProducts;
}

/**
* @param invisibleProducts the invisibleProducts to set
*/
public void setInvisibleProducts(List<POUserGroupToInvisibleProduct> invisibleProducts) {
this.invisibleProducts = invisibleProducts;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*******************************************************************************
*
* Copyright FUJITSU LIMITED 2016
*
* Creation Date: 29 lut 2016
*
*******************************************************************************/

package org.oscm.internal.usergroupmgmt;

import org.oscm.internal.base.BasePO;

/**
* This class is used to display the accessible services.
*
* @author BadziakP
*
*/
public class POUserGroupToInvisibleProduct extends BasePO {

private static final long serialVersionUID = 5016720506043698384L;
private boolean forAllUsers;
private long serviceKey;

/**
* @return the forAllUsers
*/
public boolean isForAllUsers() {
return forAllUsers;
}

/**
* @param forAllUsers
* the forAllUsers to set
*/
public void setForAllUsers(boolean forAllUsers) {
this.forAllUsers = forAllUsers;
}

/**
* @return the serviceKey
*/
public long getServiceKey() {
return serviceKey;
}

/**
* @param serviceKey
* the serviceKey to set
*/
public void setServiceKey(long serviceKey) {
this.serviceKey = serviceKey;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public POUserGroup createGroup(POUserGroup group, String marketplaceId)
* @throws ObjectNotFoundException
* @throws NonUniqueBusinessKeyException
* @throws MailOperationException
* @throws UserRoleAssignmentException
* @throws UserRoleAssignmentException
*/
public POUserGroup updateGroup(POUserGroup group, String marketplaceId,
List<POUserInUnit> usersToAssign,
Expand Down Expand Up @@ -210,46 +210,53 @@ public List<Long> getInvisibleProductKeysForUser(long userKey)
public List<Long> getInvisibleProductKeysForGroup(long groupKey);

/**
* get all user groups to which user is assigned and role that user has in particular group
* get all user groups to which user is assigned and role that user has in
* particular group
*
* @param userId
* @return the list of user groups
*/
public List<POUserGroup> getUserGroupListForUserWithRoles(String userId);

/**
* Get all Units, which are assigned to user with specific role
* (for example User or Administrator).
* Get all Units, which are assigned to user with specific role (for example
* User or Administrator).
*
* @param userKey user key
* @param userRoleKey user role key
* @param userKey
* user key
* @param userRoleKey
* user role key
* @return list of units matching criteria
*/
public List<POUserGroup> getUserGroupsForUserWithRole(long userKey,
long userRoleKey);

/**
* Get all Units without default one, which are assigned to user with specific role
* (for example User or Administrator).
* Get all Units without default one, which are assigned to user with
* specific role (for example User or Administrator).
*
* @param userKey user key
* @param userRoleKey user role key
* @param userKey
* user key
* @param userRoleKey
* user role key
* @return list of units matching criteria
*/
public List<POUserGroup> getUserGroupsForUserWithRoleWithoutDefault(
long userKey, long userRoleKey);

/**
* This method is used to removing UNIT_ADMINISTRATOR role from the current user when he loses user group.
* If user no longer can be subscription owner, this method removes owner from his subscriptions.
* This method is used to removing UNIT_ADMINISTRATOR role from the current
* user when he loses user group. If user no longer can be subscription
* owner, this method removes owner from his subscriptions.
*
* @return true - if UNIT_ADMINISTRATOR role has been removed, false - otherwise
* @return true - if UNIT_ADMINISTRATOR role has been removed, false -
* otherwise
*/
public boolean handleRemovingCurrentUserFromGroup();

/**
* get all user groups to which user is assigned and role that user has in particular group
* without default group
* get all user groups to which user is assigned and role that user has in
* particular group without default group
*
* @param userId
* @return the list of user groups
Expand All @@ -271,8 +278,10 @@ public POUserGroup getUserGroupDetailsWithUsers(long groupKey)

/**
*
* @param pagination - sorting, filtering, paging details
* @param selectedGroupId - the key of user group
* @param pagination
* - sorting, filtering, paging details
* @param selectedGroupId
* - the key of user group
* @return sorted and filtered list of users
* @throws OrganizationAuthoritiesException
*/
Expand All @@ -282,11 +291,22 @@ Response getUsersForGroup(PaginationUsersInUnit pagination,
/**
* get number of users assigned to this user group.
*
* @param selectedGroupId - the key of user group
* @param pagination - sorting, filtering, paging details
* @param selectedGroupId
* - the key of user group
* @param pagination
* - sorting, filtering, paging details
* @return number of users
* @throws OrganizationAuthoritiesException
*/
Integer getCountUsersForGroup(PaginationUsersInUnit pagination,
String selectedGroupId) throws OrganizationAuthoritiesException;

/**
* get all invisible product keys with information about visibility for
* specified user group.
*
* @param groupKey
* @return the list of invisible products for the given user group.
*/
List<POUserGroupToInvisibleProduct> getInvisibleProducts(long userGroupKey);
}
Loading

0 comments on commit d42ec9a

Please sign in to comment.