Skip to content

Commit

Permalink
Merge branches 'master' and 'master' of https://github.com/Evolveum/m…
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Jun 12, 2017
2 parents b7c548e + f8eb894 commit 33cf1e0
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 77 deletions.
Expand Up @@ -2,6 +2,7 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismReferenceValue;
Expand All @@ -10,6 +11,7 @@
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
Expand Down Expand Up @@ -56,70 +58,90 @@ public RoleGovernanceRelationsPanel(String id, IModel<RoleType> model, List<Rela
@Override
protected List<InlineMenuItem> newMemberInlineMenuItems() {
List<InlineMenuItem> newMemberMenuItems = new ArrayList<>();
newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createApprover"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.APPROVER.getRelation(), target);
}
}));
boolean isAuthorizedToCreate = WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_GOVERNANCE_ACTION_URI);
boolean isAuthorizedToAssign = WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_GOVERNANCE_ACTION_URI);
if (isAuthorizedToCreate) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createApprover"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.APPROVER.getRelation(), target);
}
}));
}

newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.assignApprovers"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
if (isAuthorizedToAssign) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.assignApprovers"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.APPROVER.getRelation(), target);
}
}));
@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.APPROVER.getRelation(), target);
}
}));
}

newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createOwner"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
if (isAuthorizedToCreate) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createOwner"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.OWNER.getRelation(), target);
}
}));

newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.assignOwners"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.OWNER.getRelation(), target);
}
}));
newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.OWNER.getRelation(), target);
}
}));
}

@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.MANAGER.getRelation(), target);
}
}));
if (isAuthorizedToAssign) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.assignOwners"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addManagers"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.OWNER.getRelation(), target);
}
}));
}

@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.MANAGER.getRelation(), target);
}
}));
if (isAuthorizedToCreate) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
createFocusMemberPerformed(RelationTypes.MANAGER.getRelation(), target);
}
}));
}

if (isAuthorizedToAssign) {
newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addManagers"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
addMembers(RelationTypes.MANAGER.getRelation(), target);
}
}));
}
return newMemberMenuItems;
}

@Override
protected List<InlineMenuItem> createUnassignMemberInlineMenuItems() {
return super.createUnassignMemberInlineMenuItems();
List<InlineMenuItem> menuItems = new ArrayList<>();
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_GOVERNANCE_ACTION_URI)){
menuItems.addAll(super.createUnassignMemberInlineMenuItems());
}
return menuItems;
}

@Override
Expand Down
Expand Up @@ -11,6 +11,9 @@
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.task.api.TaskCategory;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.search.Search;
import com.evolveum.midpoint.web.component.search.SearchFactory;
import com.evolveum.midpoint.web.page.admin.resources.ResourceContentPanel;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
Expand Down Expand Up @@ -121,8 +124,9 @@ private void initMemberTable(TableId tableId, Form form) {
memberContainer.setOutputMarkupPlaceholderTag(true);
form.add(memberContainer);

PageBase pageBase = getPageBase();
MainObjectListPanel<ObjectType> childrenListPanel = new MainObjectListPanel<ObjectType>(
ID_MEMBER_TABLE, getDefaultObjectType(), tableId, getSearchOptions(), getPageBase()) {
ID_MEMBER_TABLE, ObjectType.class, tableId, getSearchOptions(), pageBase) {

private static final long serialVersionUID = 1L;

Expand Down Expand Up @@ -161,6 +165,11 @@ protected List<InlineMenuItem> createInlineMenu() {
return new ArrayList<>();
}

@Override
protected Search createSearch() {
return SearchFactory.createSearch(getDefaultObjectType(), pageBase);
}

@Override
protected ObjectQuery createContentQuery() {
ObjectQuery q = super.createContentQuery();
Expand Down Expand Up @@ -192,7 +201,6 @@ protected List<InlineMenuItem> createMembersHeaderInlineMenu() {
List<InlineMenuItem> headerMenuItems = new ArrayList<>();
headerMenuItems.addAll(newMemberInlineMenuItems());

headerMenuItems.add(new InlineMenuItem());
headerMenuItems.addAll(createUnassignMemberInlineMenuItems());
headerMenuItems.addAll(createMemberRecomputeInlineMenuItems());

Expand Down
Expand Up @@ -146,7 +146,7 @@ public int compare(ObjectTypes o1, ObjectTypes o2) {

@Override
protected void onUpdate(AjaxRequestTarget target) {
refreshSearch(target);
refreshSearch();
refreshTable(target);
}
});
Expand Down Expand Up @@ -385,13 +385,13 @@ protected List<InlineMenuItem> createMembersHeaderInlineMenu() {
List<InlineMenuItem> headerMenuItems = new ArrayList<>();
headerMenuItems.addAll(newMemberInlineMenuItems());

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_UNASSIGN_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_URI)) {
headerMenuItems.addAll(super.createUnassignMemberInlineMenuItems());
}
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_RECOMPUTE_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_URI)) {
headerMenuItems.addAll(super.createMemberRecomputeInlineMenuItems());
}
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_DELETE_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_DELETE_MEMBER_ACTION_URI)) {
headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.deleteMember"),
false, new HeaderMenuAction(this) {

Expand All @@ -414,14 +414,14 @@ public void onClick(AjaxRequestTarget target) {
}

protected List<InlineMenuItem> createNewMemberInlineMenuItems() {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_ADD_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_MEMBER_ACTION_URI)) {
return super.createNewMemberInlineMenuItems();
}
return new ArrayList<>();
}

protected List<InlineMenuItem> assignNewMemberInlineMenuItems() {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_ASSIGN_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_MEMBER_ACTION_URI)) {
return super.assignNewMemberInlineMenuItems();
}
return new ArrayList<>();
Expand Down Expand Up @@ -452,7 +452,7 @@ private void deleteMemberConfirmPerformed(QueryScope scope, QName relation, Ajax
private List<InlineMenuItem> createManagersHeaderInlineMenu() {
List<InlineMenuItem> headerMenuItems = new ArrayList<>();

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_ADD_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_MEMBER_ACTION_URI)) {
headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
Expand All @@ -464,7 +464,7 @@ public void onClick(AjaxRequestTarget target) {
}));
}

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_ASSIGN_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_MEMBER_ACTION_URI)) {
headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addManagers"), false,
new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
Expand All @@ -476,7 +476,7 @@ public void onClick(AjaxRequestTarget target) {
}));
}

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_UNASSIGN_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_URI)) {
headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.removeManagersAll"),
false, new HeaderMenuAction(this) {
private static final long serialVersionUID = 1L;
Expand All @@ -488,7 +488,7 @@ public void onClick(AjaxRequestTarget target) {
}));
}

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_RECOMPUTE_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_URI)) {
headerMenuItems
.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeManagersAll"),
false, new HeaderMenuAction(this) {
Expand All @@ -501,7 +501,7 @@ public void onClick(AjaxRequestTarget target) {
}));
}

if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ORG_DELETE_MEMBER_ACTION_URI)) {
if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_DELETE_MEMBER_ACTION_URI)) {
headerMenuItems
.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.deleteManagersAll"),
false, new HeaderMenuAction(this) {
Expand All @@ -526,7 +526,7 @@ protected void refreshTable(AjaxRequestTarget target) {
.qnameToClass(getPageBase().getPrismContext(), type.getTypeQName(), ObjectType.class), target);
}

protected void refreshSearch(AjaxRequestTarget target) {
protected void refreshSearch() {
getMemberTable().resetSearchModel();
}

Expand Down
3 changes: 1 addition & 2 deletions gui/admin-gui/src/main/webapp/less/midpoint-theme.less
Expand Up @@ -155,9 +155,8 @@ th.cog, td.cog {
.userpanel-photo {
background-color: #FFFFFF;
border-radius: 35%;
height: 115px;
max-height: 115px;
max-width: 115px;
max-height: 100%;
vertical-align: middle;
}

Expand Down
Expand Up @@ -357,19 +357,29 @@ public class AuthorizationConstants {
public static final String AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_UNASSIGN_ACTION_QNAME);

//ui authorizations for menu items on the org members/managers panel
public static final QName AUTZ_UI_ADMIN_ORG_ASSIGN_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminOrgAssignMember");
public static final String AUTZ_UI_ADMIN_ORG_ASSIGN_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ORG_ASSIGN_MEMBER_ACTION_QNAME);
public static final QName AUTZ_UI_ADMIN_ASSIGN_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminAssignMember");
public static final String AUTZ_UI_ADMIN_ASSIGN_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ASSIGN_MEMBER_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_ORG_UNASSIGN_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminOrgUnassignMember");
public static final String AUTZ_UI_ADMIN_ORG_UNASSIGN_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ORG_UNASSIGN_MEMBER_ACTION_QNAME);
public static final QName AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminUnassignMember");
public static final String AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_UNASSIGN_MEMBER_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_ORG_ADD_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminOrgAddMember");
public static final String AUTZ_UI_ADMIN_ORG_ADD_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ORG_ADD_MEMBER_ACTION_QNAME);
public static final QName AUTZ_UI_ADMIN_ADD_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminAddMember");
public static final String AUTZ_UI_ADMIN_ADD_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ADD_MEMBER_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_ORG_DELETE_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminOrgDeleteMember");
public static final String AUTZ_UI_ADMIN_ORG_DELETE_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ORG_DELETE_MEMBER_ACTION_QNAME);
public static final QName AUTZ_UI_ADMIN_DELETE_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminDeleteMember");
public static final String AUTZ_UI_ADMIN_DELETE_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_DELETE_MEMBER_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_ORG_RECOMPUTE_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminOrgRecomputeMember");
public static final String AUTZ_UI_ADMIN_ORG_RECOMPUTE_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ORG_RECOMPUTE_MEMBER_ACTION_QNAME);
public static final QName AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminRecomputeMember");
public static final String AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_RECOMPUTE_MEMBER_ACTION_QNAME);

//ui authorizations for menu items on the Governance members tab of Role type object
public static final QName AUTZ_UI_ADMIN_ASSIGN_GOVERNANCE_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminAssignGovernance");
public static final String AUTZ_UI_ADMIN_ASSIGN_GOVERNANCE_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ASSIGN_GOVERNANCE_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_UNASSIGN_GOVERNANCE_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminUnassignGovernance");
public static final String AUTZ_UI_ADMIN_UNASSIGN_GOVERNANCE_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_UNASSIGN_GOVERNANCE_ACTION_QNAME);

public static final QName AUTZ_UI_ADMIN_ADD_GOVERNANCE_ACTION_QNAME = new QName(NS_AUTHORIZATION_UI, "adminAddGovernance");
public static final String AUTZ_UI_ADMIN_ADD_GOVERNANCE_ACTION_URI = QNameUtil.qNameToUri(AUTZ_UI_ADMIN_ADD_GOVERNANCE_ACTION_QNAME);

}

0 comments on commit 33cf1e0

Please sign in to comment.