Skip to content

Commit

Permalink
Support for getting role types, work in progress (MID-2257)
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Mar 12, 2015
1 parent 02f96c3 commit 8a0ef2c
Show file tree
Hide file tree
Showing 14 changed files with 366 additions and 49 deletions.
Expand Up @@ -156,8 +156,8 @@ public <O extends ObjectType> ObjectSecurityConstraints compileSecurityConstrain

@Override
public <O extends ObjectType> ObjectFilter preProcessObjectFilter(String operationUrl, AuthorizationPhaseType phase,
Class<O> objectType, ObjectFilter origFilter) throws SchemaException {
return securityEnforcer.preProcessObjectFilter(operationUrl, phase, objectType, origFilter);
Class<O> objectType, ObjectFilter origFilter, boolean useTarget) throws SchemaException {
return securityEnforcer.preProcessObjectFilter(operationUrl, phase, objectType, origFilter, useTarget);
}


Expand Down
@@ -1,35 +1,54 @@
/**
* Copyright (c) 2013-2015 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.prism;


import java.io.Serializable;

import com.evolveum.midpoint.util.DisplayableValue;

public class DisplayableValueImpl implements DisplayableValue, Serializable{

private Object value;
private String label;
private String description;

public DisplayableValueImpl(Object value, String label, String description) {
this.label = label;
this.value = value;
this.description = description;
}
public class DisplayableValueImpl<T> implements DisplayableValue<T>, Serializable{

private T value;
private String label;
private String description;

public DisplayableValueImpl(T value, String label, String description) {
this.label = label;
this.value = value;
this.description = description;
}

@Override
public T getValue() {
return value;
}

@Override
public Object getValue() {
return value;
}
@Override
public String getLabel() {
return label;
}

@Override
public String getLabel() {
return label;
}
@Override
public String getDescription() {
return description;
}

@Override
public String getDescription() {
return description;
}
}
@Override
public String toString() {
return "DisplayableValueImpl(" + value + ": " + label + " (" + description
+ "))";
}
}
Expand Up @@ -56,6 +56,7 @@ public interface ModelInteractionService {
static final String CLASS_NAME_WITH_DOT = ModelInteractionService.class.getName() + ".";
static final String PREVIEW_CHANGES = CLASS_NAME_WITH_DOT + "previewChanges";
static final String GET_EDIT_OBJECT_DEFINITION = CLASS_NAME_WITH_DOT + "getEditObjectDefinition";
static final String GET_ASSIGNABLE_ROLE_SPECIFICATION = CLASS_NAME_WITH_DOT + "getAssignableRoleSpecification";

/**
* Computes the most likely changes triggered by the provided delta. The delta may be any change of any object, e.g.
Expand Down Expand Up @@ -118,4 +119,11 @@ <F extends ObjectType> ModelContext<F> previewChanges(
* @return
*/
Collection<? extends DisplayableValue<String>> getActionUrls();

/**
* Returns an object that defines which roles can be assigned to the currently logged-in user.
* Returns null if there is no information about what a user can or cannot assign.
* Returns object with empty type list if the user is not authorized to assign anything.
*/
RoleSelectionSpecification getAssignableRoleSpecification(OperationResult parentResult) throws ObjectNotFoundException, SchemaException, ConfigurationException;
}
@@ -0,0 +1,45 @@
/**
* Copyright (c) 2015 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.evolveum.midpoint.model.api;

import java.util.ArrayList;
import java.util.List;

import com.evolveum.midpoint.util.DisplayableValue;

/**
* @author semancik
*
*/
public class RoleSelectionSpecification {

private List<DisplayableValue<String>> roleTypes = new ArrayList<DisplayableValue<String>>();

public List<DisplayableValue<String>> getRoleTypes() {
return roleTypes;
}

public void addRoleType(DisplayableValue<String> roleType) {
roleTypes.add(roleType);
}

@Override
public String toString() {
return "RoleSelectionSpecification(" + roleTypes + ")";
}


}

0 comments on commit 8a0ef2c

Please sign in to comment.