view src/main/webapp/permissions-manage.xhtml @ 14:be7787c36e58 default tip

new: nofity LGSercies for deleted files
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 02 Nov 2015 16:41:23 +0100
parents a50cf11e5178
children
line wrap: on
line source

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:iqbs="http://xmlns.jcp.org/jsf/composite/iqbs">

    <h:head>
    </h:head>

    <h:body>
        <f:metadata>
            <f:viewParam name="id" value="#{managePermissionsPage.dvObject.id}"/>
            <f:viewAction action="#{managePermissionsPage.init}"/>
            <f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(managePermissionsPage.dvObject, (managePermissionsPage.dvObject.instanceofDataverse ? bundle['dataverse.permissions.title'] : bundle['dataverse.permissions.dataset.title']))}"/>
        </f:metadata>
        <ui:composition template="/dataverse_template.xhtml">
            <ui:param name="pageTitle" value="#{bundle['dataverse.permissions.title']} - #{managePermissionsPage.dvObject.displayName}"/>
            <ui:param name="dataverse" value="#{managePermissionsPage.dvObject.dataverseContext}"/>
            <ui:param name="dataset" value="#{managePermissionsPage.dvObject.instanceofDataset ? managePermissionsPage.dvObject : null}"/>
            <ui:param name="version" value="#{managePermissionsPage.dvObject.instanceofDataset ? managePermissionsPage.dvObject.latestVersion : null}"/>
            <ui:param name="showMessagePanel" value="false"/>
            <ui:define name="body">
                <h:form id="rolesPermissionsForm" styleClass="margin-top">
                    <div class="panel-group">
                        <!-- Permissions Configure Panel -->
                        <p:fragment id="configureSettings">
                            <c:if test="#{managePermissionsPage.dvObject.instanceofDataverse}">
                                <div class="panel panel-default">
                                    <div data-toggle="collapse" data-target="#panelCollapsePermissions" class="panel-heading text-info">
                                        Permissions <span class="glyphicon glyphicon-chevron-up"/>
                                    </div>
                                    <div id="panelCollapsePermissions" class="collapse in">
                                        <div class="panel-body">
                                            <p:fragment id="configureMessages">
                                                <div class="messagePanel">
                                                    <iqbs:messages  collapsible="true" rendered="#{managePermissionsPage.renderConfigureMessages}"/>
                                                </div>
                                            </p:fragment>
                                            <p:commandLink type="button" id="configureButton" styleClass="btn btn-default pull-right"
                                                           actionListener="#{managePermissionsPage.initAccessSettings}"
                                                           update="accessDialog"
                                                           oncomplete="accessForm.show();">
                                                <span class="glyphicon glyphicon-cog"/> #{bundle['dataverse.permissions.access.accessBtn']}
                                            </p:commandLink>
                                            <p class="help-block clearfix">#{bundle['dataverse.permissions.description']}</p>
                                            <div>
                                                <div class="form-group">
                                                    <label for="accessRadios">
                                                        #{bundle['dataverse.permissions.Q1']}
                                                    </label>
                                                    <div class="col-sm-offset-1">
                                                        <p class="form-control-static">
                                                            <h:outputText value="#{bundle['dataverse.permissions.Q1.answer1']}" rendered="#{empty managePermissionsPage.authenticatedUsersContributorRoleAlias}" />
                                                            <h:outputText value="#{bundle['dataverse.permissions.Q1.answer2']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'dvContributor'}" />
                                                            <h:outputText value="#{bundle['dataverse.permissions.Q1.answer3']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'dsContributor'}" />
                                                            <h:outputText value="#{bundle['dataverse.permissions.Q1.answer4']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'fullContributor'}" />
                                                        </p>
                                                    </div>
                                                </div>
                                                <div class="form-group">
                                                    <label for="contributorRadios">
                                                        #{bundle['dataverse.permissions.Q2']}
                                                    </label>
                                                    <div class="col-sm-offset-1">
                                                        <p class="form-control-static">
                                                            <ui:fragment rendered="#{managePermissionsPage.defaultContributorRoleAlias eq 'editor'}">
                                                                #{bundle.editor} <span class="text-muted">#{bundle['dataverse.permissions.Q2.answer.editor.description']}</span>
                                                            </ui:fragment>
                                                            <ui:fragment rendered="#{managePermissionsPage.defaultContributorRoleAlias eq 'curator'}">
                                                                #{bundle.curator} <span class="text-muted">#{bundle['dataverse.permissions.Q2.answer.curator.description']}</span>
                                                            </ui:fragment>
                                                        </p>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </c:if>
                        </p:fragment>

                        <!-- Role Assignments Panel -->
                        <div class="panel panel-default">
                            <div data-toggle="collapse" data-target="#panelCollapseUsersGroups" class="panel-heading text-info">
                                #{bundle['dataverse.permissions.usersOrGroups']} <span class="glyphicon #{!managePermissionsPage.dvObject.instanceofDataverse ? 'glyphicon-chevron-up' : 'glyphicon-chevron-down'}"/>
                            </div>
                            <div id="panelCollapseUsersGroups" class="collapse #{!managePermissionsPage.dvObject.instanceofDataverse ? 'in' : ''}">
                                <div class="panel-body">
                                    <p:fragment id="assignmentMessages">
                                        <div class="messagePanel">
                                            <iqbs:messages collapsible="true" rendered="#{managePermissionsPage.renderAssignmentMessages}"/>
                                        </div>
                                    </p:fragment>
                                    <div class="button-block pull-right">
                                        <p:commandLink type="button" id="createGroup" styleClass="btn btn-default"
                                                       actionListener="#{managePermissionsPage.initExplicitGroupDialog}"
                                                       update="explicitGroupNewDialog" oncomplete="explicitGroupForm.show();handleResizeDialog('explicitGroupNewDialog');bind_bsui_components();">
                                            <span class="glyphicon glyphicon-plus-sign"/> #{bundle['dataverse.permissions.usersOrGroups.createGroupBtn']}
                                        </p:commandLink>
                                        <p:commandLink type="button" id="userGroupsAdd" styleClass="btn btn-default"
                                                       actionListener="#{managePermissionsPage.initAssigneeDialog}"
                                                       update="userGroupDialog"
                                                       oncomplete="userGroupsForm.show();handleResizeDialog('userGroupDialog');bind_bsui_components();">
                                            <span class="glyphicon glyphicon-user"/> #{bundle['dataverse.permissions.usersOrGroups.assignBtn']}
                                        </p:commandLink>
                                    </div>
                                    <p class="help-block clearfix">#{bundle['dataverse.permissions.usersOrGroups.description']}</p>
                                    <div>
                                        <p:dataTable id="assignedRoles" var="roleAssignment" value="#{managePermissionsPage.roleAssignments}">
                                            <p:column width="35%" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.userOrGroup']}">
                                                <h:outputText value="#{roleAssignment.assigneeDisplayInfo.title}"/>
                                                <h:outputText value=" (#{roleAssignment.assigneeDisplayInfo.affiliation})" rendered="#{!empty roleAssignment.assigneeDisplayInfo.affiliation}"/>
                                            </p:column>
                                            <p:column width="15%" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.id']}">
                                                <h:outputText value="#{roleAssignment.roleAssignment.assigneeIdentifier}"/>
                                            </p:column>
                                            <p:column width="20%" class="text-center" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.role']}">
                                                <h:outputText value="#{roleAssignment.roleName}"/>
                                            </p:column>
                                            <p:column width="30%" class="text-center" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.action']}">
                                                <h:outputFormat styleClass="text-muted italic" value="#{bundle['dataverse.permissions.usersOrGroups.assignedAt']}" rendered="#{managePermissionsPage.dvObject ne roleAssignment.definitionPoint}">
                                                    <f:param value="#{roleAssignment.assignedDvName}"/>
                                                </h:outputFormat>
                                                <p:commandLink type="button" styleClass="btn btn-default"                                           
                                                               rendered="#{managePermissionsPage.dvObject eq roleAssignment.definitionPoint}"
                                                               onclick="confirmation.show()">
                                                    <f:setPropertyActionListener value="#{roleAssignment.roleAssignment}" target="#{managePermissionsPage.selectedRoleAssignment}" />
                                                    <span class="glyphicon glyphicon-remove"/> #{bundle['dataverse.permissions.usersOrGroups.removeBtn']}
                                                </p:commandLink>
                                            </p:column>
                                        </p:dataTable>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <!-- Roles Panel -->
                        <div class="panel panel-default">
                            <div data-toggle="collapse" data-target="#panelCollapseRoles" class="panel-heading text-info">
                                #{bundle['dataverse.permissions.roles']} <span class="glyphicon glyphicon-chevron-down"/>
                            </div>
                            <div id="panelCollapseRoles" class="collapse">
                                <div class="panel-body">
                                    <p:fragment id="roleMessages">
                                        <div class="messagePanel">
                                            <iqbs:messages  collapsible="true" rendered="#{managePermissionsPage.renderRoleMessages}"/>
                                        </div>
                                    </p:fragment>
                                    <p:commandLink type="button" id="rolesAdd" styleClass="btn btn-default pull-right"
                                                   rendered="#{managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(managePermissionsPage.dvObject)
                                                                and dataverseSession.user.superuser}"
                                                   actionListener="#{managePermissionsPage.createNewRole}"
                                                   oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');bind_bsui_components();"
                                                   update=":#{p:component('editRolePanel')}">
                                        <span class="glyphicon glyphicon-plus"/> #{bundle['dataverse.permissions.roles.add']}
                                    </p:commandLink>
                                    <p class="help-block clearfix">#{bundle['dataverse.permissions.roles.description']}</p>
                                    <p:fragment id="roleDisplay">
                                        <ui:repeat id="roleList" value="#{managePermissionsPage.availableRoles}" var="role">
                                            <f:passThroughAttribute name="class" value="list-unstyled" />
                                            <div class="form-group col-sm-12 #{!empty role.owner ? 'bg-info' : 'bg-warning'}">
                                                <span class="highlightBold">#{role.name}</span>
                                                <h:outputText value=" - #{role.description}" rendered="#{!empty role.description}"/>
                                                <p:commandLink title="#{bundle['dataverse.permissions.roles.edit']}" styleClass="icon-inline-action bootstrap-button-tooltip"
                                                               rendered="#{!empty role.owner and managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(role.owner)
                                                                            and dataverseSession.user.superuser}"
                                                               actionListener="#{managePermissionsPage.editRole(role.id)}"
                                                               oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');"
                                                               update=":#{p:component('editRolePanel')}"><span class="glyphicon glyphicon-pencil"></span></p:commandLink>
                                                <p:commandLink title="#{bundle['dataverse.permissions.roles.copy']}" styleClass="icon-inline-action bootstrap-button-tooltip"
                                                               rendered="#{managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(managePermissionsPage.dvObject)
                                                                            and dataverseSession.user.superuser}"
                                                               actionListener="#{managePermissionsPage.cloneRole(role.id)}"
                                                               oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');"
                                                               update=":#{p:component('editRolePanel')}"><span class="glyphicon glyphicon-duplicate"></span></p:commandLink>
                                                <div>
                                                    <ui:repeat value="#{role.permissions().toArray()}" var="prm">
                                                        <span class="label label-default">#{prm}</span>
                                                    </ui:repeat>
                                                </div>
                                            </div>
                                        </ui:repeat>
                                    </p:fragment>
                                </div>
                            </div>
                        </div>
                    </div>

                    <!-- Users/Groups Popup -->
                    <!-- Defined this way as we may reuse the include not in a popup -->
                    <p:dialog id="accessDialog" styleClass="largePopUp" header="#{bundle['dataverse.permissions.accessDialog.header']}" widgetVar="accessForm" modal="true">
                        <ui:include src="permissions-configure.xhtml"/>
                        <div class="button-block">
                            <p:commandLink type="button" styleClass="btn btn-default" value="#{bundle['saveChanges']}"
                                           update=":#{p:component('configureSettings')} assignedRoles @([id$=Messages])"
                                           actionListener="#{managePermissionsPage.saveConfiguration}"
                                           oncomplete="accessForm.hide();"/>
                            <button type="button" class="btn btn-default" onclick="accessForm.hide()" value="Cancel">#{bundle.cancel}</button>
                        </div>
                    </p:dialog>

                    <!-- Users/Groups Popup -->
                    <ui:include src="roles-assign.xhtml"/>
                    <!-- Roles Edit Popup -->
                    <ui:include src="roles-edit.xhtml"/>
                    <!-- Explicit Group Edit Popup -->
                    <ui:include src="explicitGroup-new-dialog.xhtml"/>
                    
                    <p:dialog header="#{bundle['dataverse.permissions.usersOrGroups.removeBtn']}" widgetVar="confirmation" modal="true">
                        <p class="help-block">
                            <span class="glyphicon glyphicon-warning-sign text-danger"/> <span class="text-danger">#{bundle['dataverse.permissions.usersOrGroups.removeBtn.confirmation']}</span>
                        </p>
                        <div class="button-block">
                            <p:commandButton value="#{bundle.continue}" onclick="confirmation.hide()" 
                                             action="#{managePermissionsPage.removeRoleAssignment()}" 
                                             update=":#{p:component('configureSettings')} assignedRoles @([id$=Messages])" />
                            <p:commandButton value="#{bundle.cancel}" onclick="confirmation.hide()" type="button" />
                        </div>
                    </p:dialog>
                </h:form>
            </ui:define>
        </ui:composition>
    </h:body>
</html>