Skip to content

Commit

Permalink
Fixing role list in the right window of Request a role panel. Some co…
Browse files Browse the repository at this point in the history
…de refactoring
  • Loading branch information
KaterynaHonchar committed May 4, 2016
1 parent 9f58d8a commit 86e62e3
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 104 deletions.
Expand Up @@ -111,19 +111,18 @@ public class MultipleAssignmentSelector<F extends FocusType, H extends FocusType
private Class<H> targetFocusClass;
private String labelValue ="";
private IModel<ObjectFilter> filterModel = null;
private ObjectFilter authorizedRolesFilter = null;
private ObjectQuery searchQuery = null;
private PrismObject<F> focus;
private H filterObject = null;

public MultipleAssignmentSelector(String id, IModel<List<AssignmentEditorDto>> selectorModel, BaseSortableDataProvider provider,
Class<H> targetFocusClass, Class type, PrismObject<F> focus) {
public MultipleAssignmentSelector(String id, IModel<List<AssignmentEditorDto>> selectorModel,
Class<H> targetFocusClass, Class type, PrismObject<F> focus, IModel<ObjectFilter> filterModel) {
super(id, selectorModel);
this.provider = provider == null ? getListDataProvider(null) : provider;
this.type = type;
this.focus=focus;
this.filterModel = filterModel;
// this.provider = provider == null ? getListDataProvider(null) : provider;
this.type = type;
this.targetFocusClass = targetFocusClass;
filterModel = getFilterModel();
searchModel = new LoadableModel<Search>(false) {

@Override
Expand All @@ -132,6 +131,11 @@ public Search load() {
return search;
}
};
if (focus == null){
provider = getListDataProvider(null);
} else {
provider = getAvailableAssignmentsDataProvider();
}

initLayout();
}
Expand Down Expand Up @@ -365,9 +369,6 @@ private Component getFilterButton(){

public <T extends FocusType> BaseSortableDataProvider getListDataProvider(final FocusType focus) {
BaseSortableDataProvider provider;
// if (filterObject == null){
// provider = getAvailableAssignmentsDataProvider();
// } else {
provider = new ListDataProvider<AssignmentEditorDto>(this, new IModel<List<AssignmentEditorDto>>() {
@Override
public List<AssignmentEditorDto> getObject() {
Expand All @@ -383,12 +384,11 @@ public void detach() {

}
});
// }
return provider;
}

private <T extends FocusType> List<AssignmentEditorDto> getAvailableAssignmentsDataList(FocusType focus){
ObjectQuery query = provider.getQuery() == null ? new ObjectQuery() : provider.getQuery();
ObjectQuery query = provider.getQuery() == null ? (searchQuery == null ? new ObjectQuery() : searchQuery) : provider.getQuery();

List<AssignmentEditorDto> assignmentsList = getListProviderDataList();
if (assignmentsList == null) {
Expand Down Expand Up @@ -438,47 +438,6 @@ private List<AssignmentEditorDto> applyQueryToListProvider(ObjectQuery query, Li
return displayAssignmentsList;
}

private IModel<ObjectFilter> getFilterModel(){
return new IModel<ObjectFilter>() {
@Override
public ObjectFilter getObject() {
if (authorizedRolesFilter == null){
initRolesFilter();
}
return authorizedRolesFilter;
}

@Override
public void setObject(ObjectFilter objectFilter) {

}

@Override
public void detach() {

}
};
}

private void initRolesFilter (){
LOGGER.debug("Loading roles which the current user has right to assign");
OperationResult result = new OperationResult(OPERATION_LOAD_AVAILABLE_ROLES);
try {
PageBase pb = getPageBase();
ModelInteractionService mis = pb.getModelInteractionService();
RoleSelectionSpecification roleSpec = mis.getAssignableRoleSpecification(focus, result);
authorizedRolesFilter = roleSpec.getFilter();
} catch (Exception ex) {
LoggingUtils.logException(LOGGER, "Couldn't load available roles", ex);
result.recordFatalError("Couldn't load available roles", ex);
} finally {
result.recomputeStatus();
}
if (!result.isSuccess() && !result.isHandledError()) {
getPageBase().showResult(result);
}
}

private List<AssignmentEditorDto> getAssignmentEditorDtoList(List<AssignmentType> assignmentTypeList){
List<AssignmentEditorDto> assignmentEditorDtoList = new ArrayList<>();
for (AssignmentType assignmentType : assignmentTypeList){
Expand Down
Expand Up @@ -83,11 +83,9 @@ public class MultipleAssignmentSelectorPanel<F extends FocusType, H extends Focu
private static final String OPERATION_LOAD_AVAILABLE_ROLES = DOT_CLASS + "loadAvailableRoles";
private Class<G> type;

private BaseSortableDataProvider dataProvider;
private List<OrgType> tenantEditorObject = new ArrayList<>();
private List<OrgType> orgEditorObject = new ArrayList<>();
private PrismObject<F> focus;
private ObjectQuery dataProviderQuery;
private ObjectFilter authorizedRolesFilter = null;
private IModel<ObjectFilter> filterModel = null;
private static final Trace LOGGER = TraceManager.getTrace(MultipleAssignmentSelectorPanel.class);
Expand All @@ -108,12 +106,10 @@ public MultipleAssignmentSelectorPanel(String id, LoadableModel<List<AssignmentE
private void initLayout(Class<H> targetFocusClass) {

IModel<List<AssignmentEditorDto>> availableAssignmentModel = createAvailableAssignmentModel();
dataProvider = getAvailableAssignmentsDataProvider();
final MultipleAssignmentSelector availableAssignmentsPanel = new MultipleAssignmentSelector<F, H>(ID_AVAILABLE_ASSIGNMENTS,
availableAssignmentModel, dataProvider, targetFocusClass, type, focus);
availableAssignmentModel, targetFocusClass, type, focus, filterModel);
final MultipleAssignmentSelector currentAssignmentsPanel = new MultipleAssignmentSelector<F, H>(ID_CURRENT_ASSIGNMENTS,
assignmentsModel,
null, targetFocusClass, type, focus){
assignmentsModel, targetFocusClass, type, null, null){
@Override
protected List<AssignmentEditorDto> getListProviderDataList(){
return assignmentsModel.getObject();
Expand All @@ -124,13 +120,6 @@ protected List<AssignmentEditorDto> getListProviderDataList(){
AjaxButton add = new AjaxButton(ID_BUTTON_ADD) {
@Override
protected void onSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form form) {
List<AssignmentEditorDto> list = assignmentsModel.getObject();
for (AssignmentEditorDto dto : list){
String n = dto.getName();
if (n != null){
String f = "";
}
}
addToAssignmentsModel(target, availableAssignmentsPanel, currentAssignmentsPanel);
}
};
Expand Down Expand Up @@ -241,34 +230,6 @@ private void deleteFromAssignmentsModel(AjaxRequestTarget target, MultipleAssign
target.add(from);
}

public ObjectDataProvider getAvailableAssignmentsDataProvider() {
ObjectDataProvider<AssignmentEditorDto, G> provider = new ObjectDataProvider<AssignmentEditorDto, G>(this, type) {

@Override
public AssignmentEditorDto createDataObjectWrapper(PrismObject<G> obj) {
return AssignmentEditorDto.createDtoFromObject(obj.asObjectable(), UserDtoStatus.MODIFY, getPageBase());
}

@Override
public void setQuery(ObjectQuery query) {
super.setQuery(query);
dataProviderQuery = query;
}

@Override
public ObjectQuery getQuery() {
if (dataProviderQuery == null){
dataProviderQuery = new ObjectQuery();
}
if (filterModel != null && filterModel.getObject() != null){
dataProviderQuery.addFilter(filterModel.getObject());
}
return dataProviderQuery;
}
};
return provider;
}

private IModel<ObjectFilter> getFilterModel(){
return new IModel<ObjectFilter>() {
@Override
Expand Down Expand Up @@ -442,16 +403,6 @@ protected void onSelectPerformed(AjaxRequestTarget target, OrgType org) {
target.add(getOrgUnitEditorContainer());
}
};
// OrgTreeAssignablePanel orgPanel = new OrgTreeAssignablePanel(
// getPageBase().getMainPopupBodyId(), false, getPageBase()) {
//
// @Override
// protected void onItemSelect(SelectableBean<OrgType> selected, AjaxRequestTarget target) {
// closeModalWindow(target);
// tenantEditorObject.clear();
// tenantEditorObject.add(selected.getValue());
// target.add(getTenantEditorContainer()); }
// };
getPageBase().showMainPopup(orgPanel, new Model<String>("Select organization"), target);
}

Expand Down
Expand Up @@ -52,7 +52,6 @@ public class SearchFactory {
new ItemPath(UserType.F_COST_CENTER)));
SEARCHABLE_OBJECTS.put(RoleType.class, Arrays.asList(
new ItemPath(RoleType.F_NAME),
new ItemPath(RoleType.F_DISPLAY_NAME),
new ItemPath(RoleType.F_ROLE_TYPE)));
SEARCHABLE_OBJECTS.put(ConnectorHostType.class, Arrays.asList(
new ItemPath(ConnectorHostType.F_HOSTNAME)
Expand Down

0 comments on commit 86e62e3

Please sign in to comment.