Skip to content

Commit

Permalink
role: besides menu tree, allow configuring the sub-tree to be used
Browse files Browse the repository at this point in the history
  • Loading branch information
teosarca committed May 17, 2017
1 parent 23723bf commit d5466a5
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions src/main/java/de/metas/ui/web/menu/MenuTreeLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.adempiere.ad.security.IUserRolePermissions;
import org.adempiere.ad.security.IUserRolePermissionsDAO;
import org.adempiere.ad.security.UserRolePermissionsKey;
import org.adempiere.ad.security.permissions.UserMenuInfo;
import org.adempiere.ad.trx.api.ITrx;
import org.adempiere.exceptions.AdempiereException;
import org.adempiere.util.Check;
Expand Down Expand Up @@ -224,7 +225,8 @@ private MenuNode createNewRecordNode(final MenuNode node, final String caption,

private MTreeNode retrieveRootNodeModel()
{
final int adTreeId = getMenuTree_ID();
final UserMenuInfo userMenuInfo = getUserMenuInfo();
final int adTreeId = userMenuInfo.getAD_Tree_ID();
if (adTreeId < 0)
{
throw new AdempiereException("Menu tree not found");
Expand All @@ -238,19 +240,34 @@ private MTreeNode retrieveRootNodeModel()
.setClientTree(true)
.setLanguage(getAD_Language())
.build();

final MTreeNode rootNodeModel = mTree.getRoot();
int rootMenuIdEffective = userMenuInfo.getRoot_Menu_ID();
if (rootMenuIdEffective > 0)
{
final MTreeNode rootNodeModelEffective = rootNodeModel.findNode(rootMenuIdEffective);
if (rootNodeModelEffective != null)
{
return rootNodeModelEffective;
}
else
{
logger.warn("Cannot find Root_Menu_ID={} in {}", rootMenuIdEffective, mTree);
}
}

return rootNodeModel;
}

private int getMenuTree_ID()
private UserMenuInfo getUserMenuInfo()
{
final IUserRolePermissions userRolePermissions = getUserRolePermissions();
if (!userRolePermissions.hasPermission(IUserRolePermissions.PERMISSION_MenuAvailable))
{
return -1;
return UserMenuInfo.NONE;
}

return userRolePermissions.getMenu_Tree_ID();
return userRolePermissions.getMenuInfo();
}

public MenuTreeLoader setAD_Language(String adLanguage)
Expand Down

0 comments on commit d5466a5

Please sign in to comment.