Search in sources :

Example 11 with Role

use of org.jboss.hal.config.Role in project console by hal.

the class PrincipalColumn method collectTasks.

private void collectTasks(List<Task<FlowContext>> tasks, Principal.Type type, String name, boolean include, ModelNode modelNode, String attribute) {
    String realm = modelNode.hasDefined(REALM) ? modelNode.get(REALM).asString() : null;
    String resourceName = Principal.buildResourceName(type, name, realm);
    Principal principal = new Principal(type, resourceName, name, realm);
    if (modelNode.hasDefined(attribute)) {
        modelNode.get(attribute).asList().stream().map(nameNode -> accessControl.roles().get(Ids.role(nameNode.asString()))).forEach(role -> {
            if (role != null) {
                tasks.add(new CheckRoleMapping(dispatcher, role));
                tasks.add(new AddRoleMapping(dispatcher, role, status -> status == 404));
                tasks.add(new AddAssignment(dispatcher, role, principal, include));
            }
        });
    }
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) Provider(javax.inject.Provider) MessageEvent(org.jboss.hal.spi.MessageEvent) SuccessfulOutcome(org.jboss.hal.core.SuccessfulOutcome) ItemAction(org.jboss.hal.core.finder.ItemAction) ItemDisplay(org.jboss.hal.core.finder.ItemDisplay) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Collections.singletonList(java.util.Collections.singletonList) UniqueNameValidation(org.jboss.hal.ballroom.form.UniqueNameValidation) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) Task(org.jboss.hal.flow.Task) StaticAutoComplete(org.jboss.hal.ballroom.autocomplete.StaticAutoComplete) Progress(org.jboss.hal.flow.Progress) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) RESTORE_SELECTION(org.jboss.hal.core.finder.FinderColumn.RefreshMode.RESTORE_SELECTION) FinderColumn(org.jboss.hal.core.finder.FinderColumn) User(org.jboss.hal.config.User) Comparator.comparing(java.util.Comparator.comparing) Metadata(org.jboss.hal.meta.Metadata) ColumnActionFactory(org.jboss.hal.core.finder.ColumnActionFactory) CompositeResult(org.jboss.hal.dmr.CompositeResult) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) INCLUDE_TEMPLATE(org.jboss.hal.client.accesscontrol.AddressTemplates.INCLUDE_TEMPLATE) Set(java.util.Set) EventBus(com.google.web.bindery.event.shared.EventBus) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Composite(org.jboss.hal.dmr.Composite) List(java.util.List) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) FormItem(org.jboss.hal.ballroom.form.FormItem) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) CLEAR_SELECTION(org.jboss.hal.core.finder.FinderColumn.RefreshMode.CLEAR_SELECTION) Flow.series(org.jboss.hal.flow.Flow.series) Role(org.jboss.hal.config.Role) Finder(org.jboss.hal.core.finder.Finder) ValidationResult(org.jboss.hal.ballroom.form.ValidationResult) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) Form(org.jboss.hal.ballroom.form.Form) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping)

Example 12 with Role

use of org.jboss.hal.config.Role in project console by hal.

the class MembershipColumn method columnActionHandler.

private ColumnActionHandler<Assignment> columnActionHandler(Principal principal, boolean include) {
    return column -> {
        Role role = findRole(getFinder().getContext().getPath());
        if (role != null) {
            series(new FlowContext(progress.get()), new CheckRoleMapping(dispatcher, role), new AddRoleMapping(dispatcher, role, status -> status == 404), new AddAssignment(dispatcher, role, principal, include)).subscribe(new org.jboss.hal.core.SuccessfulOutcome<FlowContext>(eventBus, resources) {

                @Override
                public void onSuccess(FlowContext context) {
                    String type = principal.getType() == Principal.Type.USER ? resources.constants().user() : resources.constants().group();
                    SafeHtml message = include ? resources.messages().assignmentIncludeSuccess(type, principal.getName()) : resources.messages().assignmentExcludeSuccess(type, principal.getName());
                    MessageEvent.fire(eventBus, Message.success(message));
                    accessControl.reload(() -> {
                        refresh(RefreshMode.RESTORE_SELECTION);
                        if (isCurrentUser(principal)) {
                            eventBus.fireEvent(new UserChangedEvent());
                        }
                    });
                }
            });
        }
    };
}
Also used : ColumnActionHandler(org.jboss.hal.core.finder.ColumnActionHandler) Provider(javax.inject.Provider) AsyncColumn(org.jboss.hal.spi.AsyncColumn) ItemActionFactory(org.jboss.hal.core.finder.ItemActionFactory) MessageEvent(org.jboss.hal.spi.MessageEvent) ColumnAction(org.jboss.hal.core.finder.ColumnAction) ItemAction(org.jboss.hal.core.finder.ItemAction) ItemDisplay(org.jboss.hal.core.finder.ItemDisplay) FinderSegment(org.jboss.hal.core.finder.FinderSegment) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) UserChangedEvent(org.jboss.hal.config.UserChangedEvent) FlowContext(org.jboss.hal.flow.FlowContext) ArrayList(java.util.ArrayList) Collections.singletonList(java.util.Collections.singletonList) Inject(javax.inject.Inject) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) Progress(org.jboss.hal.flow.Progress) HTMLElement(elemental2.dom.HTMLElement) Message(org.jboss.hal.spi.Message) FinderColumn(org.jboss.hal.core.finder.FinderColumn) User(org.jboss.hal.config.User) Comparator.comparing(java.util.Comparator.comparing) Collectors.toSet(java.util.stream.Collectors.toSet) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) INCLUDE_TEMPLATE(org.jboss.hal.client.accesscontrol.AddressTemplates.INCLUDE_TEMPLATE) EXCLUDE_TEMPLATE(org.jboss.hal.client.accesscontrol.AddressTemplates.EXCLUDE_TEMPLATE) REMOVE(org.jboss.hal.dmr.ModelDescriptionConstants.REMOVE) Set(java.util.Set) EventBus(com.google.web.bindery.event.shared.EventBus) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) FinderPath(org.jboss.hal.core.finder.FinderPath) Sets(com.google.common.collect.Sets) List(java.util.List) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) Collectors.toList(java.util.stream.Collectors.toList) Resources(org.jboss.hal.resources.Resources) Flow.series(org.jboss.hal.flow.Flow.series) Role(org.jboss.hal.config.Role) Finder(org.jboss.hal.core.finder.Finder) Footer(org.jboss.hal.spi.Footer) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) Elements.span(org.jboss.gwt.elemento.core.Elements.span) CSS.fontAwesome(org.jboss.hal.resources.CSS.fontAwesome) Role(org.jboss.hal.config.Role) UserChangedEvent(org.jboss.hal.config.UserChangedEvent) AddRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping) AddAssignment(org.jboss.hal.client.accesscontrol.AccessControlTasks.AddAssignment) SafeHtml(com.google.gwt.safehtml.shared.SafeHtml) FlowContext(org.jboss.hal.flow.FlowContext) CheckRoleMapping(org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping)

Example 13 with Role

use of org.jboss.hal.config.Role in project console by hal.

the class AccessControl method scopedRole.

private Role scopedRole(Property property, Role.Type type, String scopeAttribute) {
    Role baseRole = roles.get(Ids.role(property.getValue().get(BASE_ROLE).asString()));
    Set<String> scope = property.getValue().get(scopeAttribute).asList().stream().map(ModelNode::asString).collect(toSet());
    return new Role(property.getName(), baseRole, type, scope);
}
Also used : Role(org.jboss.hal.config.Role)

Aggregations

Role (org.jboss.hal.config.Role)13 ArrayList (java.util.ArrayList)10 List (java.util.List)10 Inject (javax.inject.Inject)10 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)10 Ids (org.jboss.hal.resources.Ids)10 ModelNode (org.jboss.hal.dmr.ModelNode)9 FlowContext (org.jboss.hal.flow.FlowContext)9 Resources (org.jboss.hal.resources.Resources)9 Message (org.jboss.hal.spi.Message)9 EventBus (com.google.web.bindery.event.shared.EventBus)8 HTMLElement (elemental2.dom.HTMLElement)8 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)8 MessageEvent (org.jboss.hal.spi.MessageEvent)8 Collectors.toList (java.util.stream.Collectors.toList)7 Provider (javax.inject.Provider)7 AddRoleMapping (org.jboss.hal.client.accesscontrol.AccessControlTasks.AddRoleMapping)7 CheckRoleMapping (org.jboss.hal.client.accesscontrol.AccessControlTasks.CheckRoleMapping)7 Finder (org.jboss.hal.core.finder.Finder)7 FinderColumn (org.jboss.hal.core.finder.FinderColumn)7