first commit
This commit is contained in:
commit
1218dd1517
12716 files changed
+989233
No files matched your search
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
|
||||
<file t3:id="1415814783" source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/locallang.xlf" date="2012-07-16T10:11:32Z" product-name="beuser">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="activeSessions" resname="activeSessions">
|
||||
<source>Active Sessions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="userName" resname="userName">
|
||||
<source>Username</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="realName" resname="realName">
|
||||
<source>Real Name</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="lastAccess" resname="lastAccess">
|
||||
<source>Last access</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="ipAddress" resname="ipAddress">
|
||||
<source>IP address</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserListing" resname="backendUserListing">
|
||||
<source>Backend User Listing</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="subGroups" resname="subGroups">
|
||||
<source>Sub Groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="email" resname="email">
|
||||
<source>Email</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="admin" resname="admin">
|
||||
<source>Admin</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="users" resname="users">
|
||||
<source>Users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="yes" resname="yes">
|
||||
<source>Yes</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="no" resname="no">
|
||||
<source>No</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="never" resname="never">
|
||||
<source>Never</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="delete" resname="delete">
|
||||
<source>Delete backend user (!)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="disable" resname="disable">
|
||||
<source>Disable</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="disable_compare" resname="disable_compare">
|
||||
<source>Is active?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="startDateAndTime" resname="startDateAndTime">
|
||||
<source>Start</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="endDateAndTime" resname="endDateAndTime">
|
||||
<source>Stop</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="lastLogin" resname="lastLogin">
|
||||
<source>Last login</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="allowedLanguages" resname="allowedLanguages">
|
||||
<source>Limit to languages</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="dbMountPoints" resname="dbMountPoints">
|
||||
<source>DB mountpoints</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="fileMounts" resname="fileMounts">
|
||||
<source>File mountpoints</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="disableIpLock" resname="disableIpLock">
|
||||
<source>Disable IP lock</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compareBackendUsers" resname="compareBackendUsers">
|
||||
<source>Compare backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compareUserList" resname="compareUserList">
|
||||
<source>Compare user list</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="status" resname="status">
|
||||
<source>Status</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="both" resname="both">
|
||||
<source>Both</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="any" resname="any">
|
||||
<source>Any</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="adminOnly" resname="adminOnly">
|
||||
<source>Admin only</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="normalUserOnly" resname="normalUserOnly">
|
||||
<source>Normal users only</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="activeOnly" resname="activeOnly">
|
||||
<source>Active only</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="inactiveOnly" resname="inactiveOnly">
|
||||
<source>Inactive only</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="loginBefore" resname="loginBefore">
|
||||
<source>Logged in before</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="neverLoggedIn" resname="neverLoggedIn">
|
||||
<source>Never logged in</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="filter" resname="filter">
|
||||
<source>Filter</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="reallyLogout" resname="reallyLogout">
|
||||
<source>Really logout</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="endSession" resname="endSession">
|
||||
<source>End session</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUsers" resname="backendUsers">
|
||||
<source>Backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compareUsers" resname="compareUsers">
|
||||
<source>Compare backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroupsMenu" resname="backendUserGroupsMenu">
|
||||
<source>Backend user groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="onlineUsers" resname="onlineUsers">
|
||||
<source>Online users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserAdministration" resname="backendUserAdministration">
|
||||
<source>Backend User Administration</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroup" resname="backendUserGroup">
|
||||
<source>User group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroups" resname="backendUserGroups">
|
||||
<source>Member of groups</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="changeToMode" resname="changeToMode">
|
||||
<source>[change-to mode]</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="switchBackMode" resname="switchBackMode">
|
||||
<source>Switch to user</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="confirm" resname="confirm">
|
||||
<source>Are you sure you want to delete this backend user %s?</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="section.compare" resname="section.compare">
|
||||
<source>Compare</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="compare" resname="compare">
|
||||
<source>Compare</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="terminateSessionSuccess" resname="terminateSessionSuccess">
|
||||
<source>Session successfully terminated.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="backendUserGroupListing" resname="backendUserGroupListing">
|
||||
<source>Backend User Group Listing</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="online" resname="online">
|
||||
<source>online</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="visibility.hide" resname="visibility.hide">
|
||||
<source>hide</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="visibility.unhide" resname="visibility.unhide">
|
||||
<source>unhide</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
|
||||
<file t3:id="1415814784" source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/locallang_mod.xlf" date="2012-02-06T16:10:22Z" product-name="beuser">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
|
||||
<source>Backend Users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
|
||||
<source>Admin backend users</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
|
||||
<source>Backend users</source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
|
||||
<file t3:id="1415814882" source-language="en" datatype="plaintext" original="EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf" date="2011-10-17T20:22:34Z" product-name="lang">
|
||||
<header/>
|
||||
<body>
|
||||
<trans-unit id="permissions" resname="permissions">
|
||||
<source>Permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="ch_permissions" resname="ch_permissions">
|
||||
<source>Change permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Legend" resname="Legend">
|
||||
<source>Legend</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Owner" resname="Owner">
|
||||
<source>Owner</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Group" resname="Group">
|
||||
<source>Group</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Everybody" resname="Everybody">
|
||||
<source>Everybody</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="EditLock" resname="EditLock">
|
||||
<source>Lock</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="EditLock_descr" resname="EditLock_descr">
|
||||
<source>Disable the »Admin-only« edit lock for this page. Currently this page and all content is locked for editing by all non-Admin users.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="EditLock_descr2" resname="EditLock_descr2">
|
||||
<source>Enable the »Admin-only« edit lock for this page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Save" resname="Save">
|
||||
<source>Save</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Abort" resname="Abort">
|
||||
<source>Abort</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Edit" resname="Edit">
|
||||
<source>EDIT</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="recursive" resname="recursive">
|
||||
<source>Set recursively</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="page_affected" resname="page_affected">
|
||||
<source>page affected</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="pages_affected" resname="pages_affected">
|
||||
<source>pages affected</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="user_overview" resname="user_overview">
|
||||
<source>User overview</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Mode" resname="Mode">
|
||||
<source>Mode</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="Depth" resname="Depth">
|
||||
<source>Depth</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="level" resname="level">
|
||||
<source>level</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="levels" resname="levels">
|
||||
<source>levels</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="User" resname="User">
|
||||
<source>User</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="def" resname="def">
|
||||
<source>Definition: 'content' is records from all tables on a page - except from records from the table 'pages' (Pages).</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="A_Granted" resname="A_Granted">
|
||||
<source>Access Granted</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="A_Denied" resname="A_Denied">
|
||||
<source>Access Denied</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="1" resname="1">
|
||||
<source>Show page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="16" resname="16">
|
||||
<source>Edit content</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="2" resname="2">
|
||||
<source>Edit page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="4" resname="4">
|
||||
<source>Delete page</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="8" resname="8">
|
||||
<source>New pages</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="1_t" resname="1_t">
|
||||
<source>Show/Copy page and content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="16_t" resname="16_t">
|
||||
<source>Change/Add/Delete/Move content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="2_t" resname="2_t">
|
||||
<source>Change page eg. change pagetitle etc.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="4_t" resname="4_t">
|
||||
<source>Delete/Move page and content.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="8_t" resname="8_t">
|
||||
<source>Create new pages under this page.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
|
||||
<source>Page editing permissions</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
|
||||
<source>Setting of page permissions is vital for controlling backend user access to pages. You can assign a user and a group as owners of a page and set access permissions for each.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
|
||||
<source>Access</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="WorkspaceWarning" resname="WorkspaceWarning">
|
||||
<source>Workspace Warning</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="WorkspaceWarningText" resname="WorkspaceWarningText">
|
||||
<source>Permissions you set in the workspace are effective on the elements only after they are published! If you need to set permissions which are effective right now, you must do so in the Live workspace. (Permissions are always evaluated on the Live workspace record/placeholder of a draft version)</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="notSet" resname="notSet">
|
||||
<source>not set</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="deleted" resname="deleted">
|
||||
<source>deleted</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="noGroups" resname="noGroups">
|
||||
<source>No user groups exist.</source>
|
||||
</trans-unit>
|
||||
<trans-unit id="selectNone" resname="selectNone">
|
||||
<source> - none - </source>
|
||||
</trans-unit>
|
||||
<trans-unit id="selectUnchanged" resname="selectUnchanged">
|
||||
<source> - leave unchanged - </source>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
@@ -0,0 +1,28 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<be:moduleLayout>
|
||||
<f:be.pageRenderer
|
||||
includeRequireJsModules="{
|
||||
0:'TYPO3/CMS/Backend/ContextMenu',
|
||||
1:'TYPO3/CMS/Backend/Modal',
|
||||
2:'TYPO3/CMS/Beuser/BackendUserListing'
|
||||
}"
|
||||
/>
|
||||
|
||||
<be:moduleLayout.menu identifier="BackendUserModuleMenu">
|
||||
<be:moduleLayout.menuItem label="{f:translate(id: 'backendUsers')}" uri="{f:uri.action(controller: 'BackendUser', action: 'index')}"/>
|
||||
<be:moduleLayout.menuItem label="{f:translate(id: 'backendUserGroupsMenu')}" uri="{f:uri.action(controller: 'BackendUserGroup', action: 'index')}"/>
|
||||
<be:moduleLayout.menuItem label="{f:translate(id: 'onlineUsers')}" uri="{f:uri.action(controller: 'BackendUser', action: 'online')}"/>
|
||||
</be:moduleLayout.menu>
|
||||
|
||||
<f:render section="Buttons" />
|
||||
<be:moduleLayout.button.shortcutButton displayName="{f:translate(id: shortcutLabel)}" />
|
||||
|
||||
<f:render section="Content" />
|
||||
|
||||
</be:moduleLayout>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,2 @@
|
||||
<f:render section="headline" />
|
||||
<f:render section="content" />
|
||||
@@ -0,0 +1,93 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:bu="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers">
|
||||
|
||||
<f:section name="list_row">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_users" data-uid="{backendUser.uid}" title="{f:if(condition: '{backendUser.description}', then: '{backendUser.description} ')}(id={backendUser.uid})">
|
||||
<be:avatar backendUser="{backendUser.uid}" showIcon="TRUE" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<be:link.editRecord table="be_users" uid="{backendUser.uid}" title="edit">
|
||||
<b>{backendUser.userName}</b>
|
||||
</be:link.editRecord>
|
||||
<f:if condition="{bu:arrayElement(array: onlineBackendUsers, key: backendUser.uid)}">
|
||||
<span class="label label-success"><f:translate key="online" /></span>
|
||||
</f:if>
|
||||
<br />
|
||||
<f:if condition="{backendUser.realName}">
|
||||
<be:link.editRecord table="be_users" uid="{backendUser.uid}" title="edit">
|
||||
{backendUser.realName}
|
||||
</be:link.editRecord>
|
||||
</f:if>
|
||||
</td>
|
||||
<td>
|
||||
<f:if condition="{backendUser.lastLoginDateAndTime}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{backendUser.lastLoginDateAndTime}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="never" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<be:link.editRecord class="btn btn-default" table="be_users" uid="{backendUser.uid}" title="edit" >
|
||||
<core:icon identifier="actions-open" />
|
||||
</be:link.editRecord>
|
||||
<f:if condition="{backendUser.currentlyLoggedIn} == 1">
|
||||
<f:then>
|
||||
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{backendUser.isDisabled} == 1">
|
||||
<f:then>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" /></a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{backendUser.uid}][disable]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" /></a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<f:if condition="{currentUserUid} == {backendUser.uid}">
|
||||
<f:then>
|
||||
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a class="btn btn-default t3js-modal-trigger" href="{bu:removeUser(backendUser:backendUser)}"
|
||||
title="{f:translate(key:'LLL:EXT:beuser/Resources/Private/Language/locallang.xlf:delete')}"
|
||||
data-severity="warning"
|
||||
data-title="{f:translate(key:'LLL:EXT:backend/Resources/Private/Language/locallang_alt_doc.xlf:label.confirm.delete_record.title')}"
|
||||
data-content="{f:translate(key:'confirm',arguments:'{0:backendUser.userName}')}"
|
||||
data-button-close-text="{f:translate(key:'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel')}">
|
||||
<core:icon identifier="actions-edit-delete" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a class="btn btn-default" href="#" onclick="top.TYPO3.InfoWindow.showItem('be_users', '{backendUser.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<f:if condition="{compareUserUidList.{backendUser.uid}}">
|
||||
<f:then>
|
||||
<f:link.action action="removeFromCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default">
|
||||
<core:icon identifier="actions-remove" size="small"/>
|
||||
<f:translate key="compare" />
|
||||
</f:link.action>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:link.action action="addToCompareList" arguments="{uid: backendUser.uid}" class="btn btn-default"><core:icon identifier="actions-add" size="small"/> <f:translate key="compare" /></f:link.action>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<bu:SwitchUser backendUser="{backendUser}" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:section>
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
{namespace be=TYPO3\CMS\Backend\ViewHelpers}
|
||||
{namespace bu=TYPO3\CMS\Beuser\ViewHelpers}
|
||||
<f:for each="{onlineUser.sessions}" as="session" iteration="it">
|
||||
<tr>
|
||||
<f:if condition="{it.isFirst}">
|
||||
<f:then>
|
||||
<td>
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_users" data-uid="{onlineUser.backendUser.uid}" title="{f:if(condition: '{onlineUser.backendUser.description}', then: '{onlineUser.backendUser.description} ')}(id={onlineUser.backendUser.uid})">
|
||||
<be:avatar backendUser="{onlineUser.backendUser.uid}" showIcon="true" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<b>{onlineUser.backendUser.userName}</b>
|
||||
<span class="label label-success"><f:translate key="online" /></span><br />
|
||||
{onlineUser.backendUser.realName}
|
||||
</td>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<td></td>
|
||||
<td class="col-title"></td>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<td>
|
||||
<f:format.date format="{dateFormat} {timeFormat}" date="{session.timestamp}" />
|
||||
</td>
|
||||
<td>{session.ip}</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<f:if condition="{currentSessionId} == {session.id}">
|
||||
<f:else>
|
||||
<f:link.action
|
||||
class="btn btn-default t3js-modal-trigger"
|
||||
action="terminateBackendUserSession"
|
||||
controller="BackendUser"
|
||||
arguments="{backendUser: onlineUser.backendUser, sessionId: session.id}"
|
||||
data="{severity: 'warning', title: '{f:translate(key: \'endSession\')}', content: '{f:translate(key: \'reallyLogout\')} {onlineUser.backendUser.userName}?', button-close-text: '{f:translate(key: \'LLL:EXT:core/Resources/Private/Language/locallang_common.xlf:cancel\')}'}"
|
||||
>
|
||||
<core:icon identifier="actions-close" />
|
||||
<f:translate key="endSession" />
|
||||
</f:link.action>
|
||||
</f:else>
|
||||
</f:if>
|
||||
<a class="btn btn-default" href="#" onclick="top.TYPO3.InfoWindow.showItem('be_users', '{onlineUser.backendUser.uid}'); return false;">
|
||||
<core:icon identifier="actions-document-info" />
|
||||
</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
@@ -0,0 +1,3 @@
|
||||
<f:be.widget.paginate objects="{backendUsers}" as="paginatedBackendUsers" configuration="{itemsPerPage: 50, insertBelow: 1}">
|
||||
<f:render partial="BackendUser/PaginatedListWidgetBody" arguments="{_all}" />
|
||||
</f:be.widget.paginate>
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-list" class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th class="col-title"><f:translate key="userName" /> / <f:translate key="realName" /></th>
|
||||
<th><f:translate key="lastLogin" /></th>
|
||||
<th class="col-control"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{paginatedBackendUsers}" as="backendUser">
|
||||
<f:render partial="BackendUser/IndexListRow" section="list_row" arguments="{demand: demand, backendUser: backendUser, onlineBackendUsers: onlineBackendUsers, dateFormat: dateFormat, timeFormat: timeFormat, compareUserUidList: compareUserUidList, currentUserUid: currentUserUid}" />
|
||||
</f:for>
|
||||
<f:comment>
|
||||
Footer row: no officially defined style yet
|
||||
</f:comment>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<f:count subject="{backendUsers}" /> <f:translate key="users" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:bu="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers">
|
||||
|
||||
<f:section name="list_row">
|
||||
<tr>
|
||||
<td class="col-icon">
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_groups" data-uid="{backendUserGroup.uid}" title="{f:if(condition: '{backendUserGroup.description}', then: '{backendUserGroup.description} ')}(id={backendUserGroup.uid})">
|
||||
<bu:spriteIconForRecord table="be_groups" object="{backendUserGroup}" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
<be:link.editRecord table="be_groups" uid="{backendUserGroup.uid}" title="edit">
|
||||
<b>{backendUserGroup.title}</b><br />
|
||||
{backendUser.realName}
|
||||
</be:link.editRecord>
|
||||
</td>
|
||||
<td>
|
||||
<f:for each="{backendUserGroup.subgroups}" as="subgroup" iteration="subGroupIterator">
|
||||
<be:link.editRecord table="be_groups" uid="{subgroup.uid}" title="edit">
|
||||
{subgroup.title}
|
||||
</be:link.editRecord>
|
||||
<f:if condition="{subGroupIterator.isLast}"><f:else>, </f:else></f:if>
|
||||
</f:for>
|
||||
</td>
|
||||
<td class="col-control">
|
||||
<div class="btn-group" role="group">
|
||||
<be:link.editRecord class="btn btn-default" table="be_groups" uid="{backendUserGroup.uid}" title="edit">
|
||||
<core:icon identifier="actions-open" />
|
||||
</be:link.editRecord>
|
||||
<f:if condition="{backendUserGroup.hidden}">
|
||||
<f:then>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=0', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.unhide')}"><core:icon identifier="actions-edit-unhide" /></a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_groups][{backendUserGroup.uid}][hidden]=1', redirectUrl: redirectUrl)}" title="{f:translate(key:'visibility.hide')}"><core:icon identifier="actions-edit-hide" /></a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a class="btn btn-default" href="#" onclick="top.TYPO3.InfoWindow.showItem('be_groups', '{backendUserGroup.uid}'); return false;"><core:icon identifier="actions-document-info" /></a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</f:section>
|
||||
</html>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<f:be.widget.paginate objects="{backendUserGroups}" as="paginatedBackendUserGroups" configuration="{itemsPerPage: 50, insertBelow: 1}">
|
||||
<f:render partial="BackendUserGroup/PaginatedListWidgetBody" arguments="{_all}" />
|
||||
</f:be.widget.paginate>
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-icon"></th>
|
||||
<th class="col-title"><f:translate key="backendUserGroup" /></th>
|
||||
<th><f:translate key="subGroups" /></th>
|
||||
<th class="col-control"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{paginatedBackendUserGroups}" as="backendUserGroup">
|
||||
<f:render partial="BackendUserGroup/IndexListRow" section="list_row" arguments="{demand: demand, backendUserGroup: backendUserGroup, dateFormat: dateFormat, timeFormat: timeFormat, currentUserUid: currentUserUid}" />
|
||||
</f:for>
|
||||
<f:comment>
|
||||
Footer row: no officially defined style yet
|
||||
</f:comment>
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<f:count subject="{backendUserGroups}" /> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:be_groups" />s
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
<f:form action="index" objectName="demand" object="{demand}" class="form-inline form-inline-spaced">
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_username"><f:translate key="userName">Username</f:translate></label>
|
||||
<div class="input-group">
|
||||
<f:form.textfield
|
||||
id="tx_Beuser_username"
|
||||
class="form-control input-sm"
|
||||
property="userName"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_usertype"><f:translate key="admin">Admin</f:translate></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_usertype"
|
||||
class="form-control input-sm"
|
||||
property="userType"
|
||||
options="{0: '{f:translate(key:\"both\")}', 1: '{f:translate(key:\"adminOnly\")}', 2: '{f:translate(key:\"normalUserOnly\")}'}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_status"><f:translate key="status">Status</f:translate></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_status"
|
||||
class="form-control input-sm"
|
||||
property="status"
|
||||
options="{0: '{f:translate(key:\"both\")}', 1: '{f:translate(key:\"activeOnly\")}', 2: '{f:translate(key:\"inactiveOnly\")}'}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_Beuser_logins"><f:translate key="login">Login</f:translate></label>
|
||||
<f:form.select
|
||||
id="tx_Beuser_logins"
|
||||
class="form-control input-sm"
|
||||
property="logins"
|
||||
options="{0: '{f:translate(key:\"both\")}', 1: '{f:translate(key:\"loginBefore\")}', 2: '{f:translate(key:\"neverLoggedIn\")}'}"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="tx_beuser_backendUserGroup"><f:translate key="backendUserGroup">User Group</f:translate></label>
|
||||
<f:form.select
|
||||
id="tx_beuser_backendUserGroup"
|
||||
class="form-control input-sm"
|
||||
property="backendUserGroup"
|
||||
options="{backendUserGroups}"
|
||||
optionLabelField="title"
|
||||
optionValueField="uid"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<f:form.submit value="{f:translate(key: 'filter')}" class="btn btn-default btn-sm" />
|
||||
</div>
|
||||
</f:form>
|
||||
@@ -0,0 +1,37 @@
|
||||
<span id="g_{pageId}">
|
||||
<a
|
||||
class="ug_selector changegroup"
|
||||
data-page="{pageId}"
|
||||
data-group-id="{groupId}"
|
||||
data-groupname="{groupname}"
|
||||
>
|
||||
<f:if condition="{groupId} == 0">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
No group set -> [not set]
|
||||
</f:comment>
|
||||
<span class="not_set">
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:notSet" />]
|
||||
</span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{groupname}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
A group name can be resolved
|
||||
</f:comment>
|
||||
{groupname -> f:format.crop(maxCharacters:20)}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
Group was deleted -> [deleted]
|
||||
</f:comment>
|
||||
<span class="not_set" title="{groupId}">
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:deleted" />]
|
||||
</span>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</a>
|
||||
</span>
|
||||
@@ -0,0 +1,38 @@
|
||||
{namespace be=TYPO3\CMS\Backend\ViewHelpers}
|
||||
<span id="o_{pageId}">
|
||||
<a
|
||||
class="ug_selector changeowner"
|
||||
data-page="{pageId}"
|
||||
data-owner="{userId}"
|
||||
data-username="{username}"
|
||||
>
|
||||
<f:if condition="{userId} == 0">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
No owner set -> [not set]
|
||||
</f:comment>
|
||||
<span class="not_set">
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:notSet" />]
|
||||
</span>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:if condition="{username}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
A user name can be resolved
|
||||
</f:comment>
|
||||
{username -> f:format.crop(maxCharacters:20)}
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:comment>
|
||||
User was deleted -> [deleted]
|
||||
</f:comment>
|
||||
<span class="not_set" title="{userId}">
|
||||
[<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:deleted" />]
|
||||
</span>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</a>
|
||||
</span>
|
||||
@@ -0,0 +1,208 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
xmlns:bu="http://typo3.org/ns/TYPO3/CMS/Beuser/ViewHelpers">
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Buttons">
|
||||
<be:moduleLayout.button.linkButton
|
||||
icon="actions-view-go-back"
|
||||
title="{f:translate(id: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.goBack')}"
|
||||
link="{be:moduleLink(route: 'system_BeuserTxBeuser')}"
|
||||
/>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
<h1><f:translate key="compareBackendUsers">Compare backend users</f:translate></h1>
|
||||
<div class="table-fit">
|
||||
<table border="0" cellpadding="0" cellspacing="0" id="tx_beuser_compare" class="table table-striped table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<th>
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_users" data-uid="{compareUser.uid}" title="id={compareUser.uid}">
|
||||
<be:avatar backendUser="{compareUser.uid}" showIcon="true" />
|
||||
</a>
|
||||
{compareUser.userName}
|
||||
<be:link.editRecord class="btn btn-default pull-right" table="be_users" uid="{compareUser.uid}" title="edit">
|
||||
<core:icon identifier="actions-open" />
|
||||
</be:link.editRecord>
|
||||
</th>
|
||||
</f:for>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th><f:translate key="realName" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>{compareUser.realName}</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="email" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.email}">
|
||||
<f:then>
|
||||
<f:link.email email="{compareUser.email}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="admin" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.isAdministrator}">
|
||||
<f:then><f:translate key="yes" /></f:then>
|
||||
<f:else><f:translate key="no" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="disable_compare" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.currentlyLoggedIn} == 0">
|
||||
<f:if condition="{compareUser.isDisabled} == 1">
|
||||
<f:then>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{compareUser.uid}][disable]=0', redirectUrl: redirectUrl)}" title="{f:translate(key: 'visibility.unhide')}">
|
||||
<core:icon identifier="actions-edit-unhide" />
|
||||
</a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a class="btn btn-default" href="{bu:issueCommand(parameters: 'data[be_users][{compareUser.uid}][disable]=1', redirectUrl: redirectUrl)}" title="{f:translate(key: 'visibility.hide')}">
|
||||
<core:icon identifier="actions-edit-hide" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="startDateAndTime" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.startDateAndTime}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareUser.startDateAndTime}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="endDateAndTime" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.endDateAndTime}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareUser.endDateAndTime}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="lastLogin" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.lastLoginDateAndTime}">
|
||||
<f:then>
|
||||
<f:format.date format="{dateFormat} {timeFormat}">{compareUser.lastLoginDateAndTime}</f:format.date>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<f:translate key="never" />
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="backendUserGroups" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:for each="{compareUser.BackendUserGroups}" as="backendUserGroup">
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_groups" data-uid="{backendUserGroup.uid}" title="id={backendUserGroup.uid}">
|
||||
<bu:spriteIconForRecord table="be_users" object="{backendUserGroup}" />
|
||||
</a>
|
||||
{backendUserGroup.title}<br />
|
||||
</f:for>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="allowedLanguages" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.allowedLanguages}">
|
||||
<f:then>
|
||||
<bu:display.sysLanguage uids="{compareUser.allowedLanguages}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="dbMountPoints" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.dbMountPoints}">
|
||||
<f:then>
|
||||
<bu:display.pages uids="{compareUser.dbMountPoints}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="fileMounts" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.fileMountPoints}">
|
||||
<f:then>
|
||||
<bu:display.sysFileMounts uids="{compareUser.fileMountPoints}" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
-
|
||||
</f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><f:translate key="disableIpLock" /></th>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<td>
|
||||
<f:if condition="{compareUser.ipLockIsDisabled} == 1">
|
||||
<f:then><f:translate key="yes" /></f:then>
|
||||
<f:else><f:translate key="no" /></f:else>
|
||||
</f:if>
|
||||
</td>
|
||||
</f:for>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:section>
|
||||
</html>
|
||||
@@ -0,0 +1,62 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Buttons">
|
||||
<be:moduleLayout.button.linkButton
|
||||
icon="actions-add"
|
||||
title="{f:translate(id: 'LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:newRecordGeneral')}"
|
||||
link="{be:uri.newRecord(table: 'be_users')}"
|
||||
/>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
<h1><f:translate key="backendUserListing" /></h1>
|
||||
<f:comment>
|
||||
Listing of users on compare list
|
||||
</f:comment>
|
||||
<f:if condition="{compareUserList}">
|
||||
<h3>{f:translate(key: 'section.compare', default: 'Compare')}</h3>
|
||||
<div class="table-fit">
|
||||
<table id="typo3-backend-user-list-compare" class="table table-hover">
|
||||
<tbody>
|
||||
<f:for each="{compareUserList}" as="compareUser">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="#" class="t3js-contextmenutrigger" data-table="be_users" data-uid="{compareUser.uid}" title="id={compareUser.uid}">
|
||||
<be:avatar backendUser="{compareUser.uid}" showIcon="TRUE" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="col-title">
|
||||
{compareUser.userName}
|
||||
</td>
|
||||
<td>
|
||||
<f:link.action action="removeFromCompareList" arguments="{uid: compareUser.uid}" class="pull-right btn btn-default">
|
||||
<core:icon identifier="actions-remove" />
|
||||
</f:link.action>
|
||||
</td>
|
||||
</tr>
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<f:form action="compare">
|
||||
<f:form.submit value="{f:translate(key: 'compareUserList', default: 'Compare user list')}" class="btn btn-default" />
|
||||
</f:form>
|
||||
<hr>
|
||||
</f:if>
|
||||
|
||||
<f:comment>
|
||||
Filter section
|
||||
</f:comment>
|
||||
<f:render partial="Filters/BackendUser/Index" arguments="{demand: demand, backendUserGroups: backendUserGroups}" />
|
||||
|
||||
<f:render partial="BackendUser/PaginatedListWidget" arguments="{_all}" />
|
||||
|
||||
</f:section>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
{namespace bu=TYPO3\CMS\Beuser\ViewHelpers}
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Buttons">
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
<h1><f:translate key="onlineUsers" /></h1>
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th class="col-title"><f:translate key="userName" /> / <f:translate key="realName" /></th>
|
||||
<th><f:translate key="lastAccess" /></th>
|
||||
<th><f:translate key="ipAddress" /></th>
|
||||
<th class="col-control"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<f:for each="{onlineUsersAndSessions}" as="onlineUser">
|
||||
<f:render partial="BackendUser/OnlineListRow" arguments="{onlineUser: onlineUser, dateFormat: dateFormat, timeFormat: timeFormat, currentSessionId: currentSessionId}" />
|
||||
</f:for>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</f:section>
|
||||
@@ -0,0 +1,20 @@
|
||||
<html
|
||||
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
|
||||
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
|
||||
data-namespace-typo3-fluid="true">
|
||||
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Buttons">
|
||||
<be:moduleLayout.button.linkButton
|
||||
icon="actions-add"
|
||||
title="{f:translate(id: 'LLL:EXT:backend/Resources/Private/Language/locallang_layout.xlf:newRecordGeneral')}"
|
||||
link="{be:uri.newRecord(table: 'be_groups')}"
|
||||
/>
|
||||
</f:section>
|
||||
|
||||
<f:section name="Content">
|
||||
<h1><f:translate key="backendUserGroupListing" /></h1>
|
||||
<f:render partial="BackendUserGroup/PaginatedListWidget" arguments="{_all}" />
|
||||
</f:section>
|
||||
</html>
|
||||
@@ -0,0 +1,107 @@
|
||||
{namespace be=TYPO3\CMS\Backend\ViewHelpers}
|
||||
|
||||
<f:layout name="Permission" />
|
||||
|
||||
<f:section name="headline">
|
||||
<h1>
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:permissions" />:
|
||||
<f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Edit" />
|
||||
</h1>
|
||||
</f:section>
|
||||
|
||||
<f:section name="content">
|
||||
<f:form action="update" name="editform" id="PermissionControllerEdit">
|
||||
|
||||
<div class="form-group">
|
||||
<label><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></label>
|
||||
<f:form.select name="data[pages][{id}][perms_userid]" options="{beUserData}" value="{currentBeUser}" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></label>
|
||||
<f:if condition="{f:count(subject:beGroupData)} > 1">
|
||||
<f:then>
|
||||
<f:form.select name="data[pages][{id}][perms_groupid]" options="{beGroupData}" value="{currentBeGroup}" class="form-control" />
|
||||
</f:then>
|
||||
<f:else>
|
||||
<div class="alert alert-notice"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:noGroups" /></div>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default panel-space">
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover" id="typo3-permissionMatrix">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></strong></td>
|
||||
<td><input type="checkbox" name="check[perms_user][1]" onclick="TYPO3.Permissions.checkChange('check[perms_user]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_user][5]" onclick="TYPO3.Permissions.checkChange('check[perms_user]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_user][2]" onclick="TYPO3.Permissions.checkChange('check[perms_user]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_user][3]" onclick="TYPO3.Permissions.checkChange('check[perms_user]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_user][4]" onclick="TYPO3.Permissions.checkChange('check[perms_user]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]')" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></strong></td>
|
||||
<td><input type="checkbox" name="check[perms_group][1]" onclick="TYPO3.Permissions.checkChange('check[perms_group]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_group][5]" onclick="TYPO3.Permissions.checkChange('check[perms_group]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_group][2]" onclick="TYPO3.Permissions.checkChange('check[perms_group]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_group][3]" onclick="TYPO3.Permissions.checkChange('check[perms_group]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_group][4]" onclick="TYPO3.Permissions.checkChange('check[perms_group]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]')" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Everybody" /></strong></td>
|
||||
<td><input type="checkbox" name="check[perms_everybody][1]" onclick="TYPO3.Permissions.checkChange('check[perms_everybody]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_everybody][5]" onclick="TYPO3.Permissions.checkChange('check[perms_everybody]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_everybody][2]" onclick="TYPO3.Permissions.checkChange('check[perms_everybody]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_everybody][3]" onclick="TYPO3.Permissions.checkChange('check[perms_everybody]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]')" /></td>
|
||||
<td><input type="checkbox" name="check[perms_everybody][4]" onclick="TYPO3.Permissions.checkChange('check[perms_everybody]', 'tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]')" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="recursionLevel"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Depth" /></label>
|
||||
<f:form.select id="recursionLevel" name="mirror[pages][{id}]" options="{recursiveSelectOptions}" class="form-control" />
|
||||
</div>
|
||||
|
||||
<f:form.hidden name="data[pages][{id}][perms_user]" value="{pageInfo.perms_user}" />
|
||||
<f:form.hidden name="data[pages][{id}][perms_group]" value="{pageInfo.perms_group}" />
|
||||
<f:form.hidden name="data[pages][{id}][perms_everybody]" value="{pageInfo.perms_everybody}" />
|
||||
<f:form.hidden name="depth" value="{depth}" />
|
||||
<f:form.hidden name="returnUrl" value="{returnUrl}" />
|
||||
|
||||
</f:form>
|
||||
|
||||
<hr>
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Legend" /></h3>
|
||||
<p>
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1_t" /> <br />
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16_t" /> <br />
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2_t" /> <br />
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4_t" /> <br />
|
||||
<strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8_t" />
|
||||
</p>
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:def" /></p>
|
||||
|
||||
<script type="text/javascript">
|
||||
require(["jquery", "TYPO3/CMS/Beuser/Permissions"], function($, Permissions) {
|
||||
Permissions.setCheck("check[perms_user]", "tx_beuser_system_beusertxpermission[data][pages][{id}][perms_user]");
|
||||
Permissions.setCheck("check[perms_group]", "tx_beuser_system_beusertxpermission[data][pages][{id}][perms_group]");
|
||||
Permissions.setCheck("check[perms_everybody]", "tx_beuser_system_beusertxpermission[data][pages][{id}][perms_everybody]");
|
||||
});
|
||||
</script>
|
||||
|
||||
</f:section>
|
||||
@@ -0,0 +1,196 @@
|
||||
{namespace be=TYPO3\CMS\Backend\ViewHelpers}
|
||||
{namespace bu=TYPO3\CMS\Beuser\ViewHelpers}
|
||||
|
||||
<f:layout name="Permission" />
|
||||
|
||||
<f:section name="headline">
|
||||
<h1><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:permissions" /></h1>
|
||||
</f:section>
|
||||
|
||||
<f:section name="content">
|
||||
|
||||
<div class="form-group">
|
||||
<label for="depth"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Depth" />:</label>
|
||||
<f:form.select class="form-control" id="depth" value="{depth}" options="{depthOptions}" additionalAttributes="{onchange: 'TYPO3.Permissions.jumpToUrl(\'{depthBaseUrl}\'.replace(\'__DEPTH__\', this.options[this.selectedIndex].value), this);'}" />
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default panel-space">
|
||||
<div class="table-fit">
|
||||
<table class="table table-striped table-hover" id="typo3-permissionList">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"> </th>
|
||||
<th><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Owner" /></th>
|
||||
<th align="center"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Group" /></th>
|
||||
<th align="center"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Everybody" /></th>
|
||||
<th align="center"><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<f:for each="{viewTree}" as="data">
|
||||
<tr>
|
||||
<f:if condition="{data.row.uid}">
|
||||
<f:then>
|
||||
<f:comment>
|
||||
A "normal" page row is rendered, not the root page
|
||||
</f:comment>
|
||||
|
||||
<td align="left" class="nowrap">
|
||||
<f:link.action
|
||||
action="edit"
|
||||
arguments="{id: '{f:if(condition: data.row._ORIG_uid, then: data.row._ORIG_uid, else: data.row.uid)}', depth: depth, returnUrl: '{f:uri.action(action: \'index\', arguments: \'{id: currentId, depth: depth}\')}'}"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}"
|
||||
>
|
||||
<f:format.raw>{data.depthData}{data.HTML}</f:format.raw>
|
||||
{data.row.title -> f:format.crop(maxCharacters:20)}
|
||||
</f:link.action>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<f:comment>
|
||||
Edit link is workspace aware: If in ws, link to edit the ws overlay record is rendered
|
||||
</f:comment>
|
||||
<f:link.action
|
||||
action="edit"
|
||||
arguments="{id: '{f:if(condition: data.row._ORIG_uid, then: data.row._ORIG_uid, else: data.row.uid)}', depth: depth, returnUrl: '{f:uri.action(action: \'index\', arguments: \'{id: currentId, depth: depth}\')}'}"
|
||||
class="btn btn-default"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:ch_permissions')}"
|
||||
>
|
||||
<core:icon identifier="actions-open" />
|
||||
</f:link.action>
|
||||
</td>
|
||||
|
||||
<td class="nowrap">
|
||||
<bu:permissions permission="{data.row.perms_user}" scope="user" pageId="{data.row.uid}" />
|
||||
<f:render
|
||||
partial="Permission/Ownername"
|
||||
arguments="{
|
||||
pageId: '{data.row.uid}',
|
||||
userId: '{data.row.perms_userid}',
|
||||
username: '{bu:arrayElement(array:beUsers, key:data.row.perms_userid, subKey:\'username\')}'
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
|
||||
<td class="nowrap">
|
||||
<bu:permissions permission="{data.row.perms_group}" scope="group" pageId="{data.row.uid}" />
|
||||
<f:render
|
||||
partial="Permission/Groupname"
|
||||
arguments="{
|
||||
pageId: '{data.row.uid}',
|
||||
groupId: '{data.row.perms_groupid}',
|
||||
groupname: '{bu:arrayElement(array:beGroups, key:data.row.perms_groupid, subKey:\'title\')}'
|
||||
}"
|
||||
/>
|
||||
</td>
|
||||
|
||||
<td class="nowrap">
|
||||
<bu:permissions permission="{data.row.perms_everybody}" scope="everybody" pageId="{data.row.uid}" />
|
||||
</td>
|
||||
|
||||
<td class="nowrap">
|
||||
<span id="el_{data.row.uid}">
|
||||
<f:if condition="{data.row.editlock}">
|
||||
<f:then>
|
||||
<a
|
||||
class="editlock btn btn-default"
|
||||
data-page="{data.row.uid}"
|
||||
data-lockstate="1"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr')}"
|
||||
>
|
||||
<core:icon identifier="actions-lock" />
|
||||
</a>
|
||||
</f:then>
|
||||
<f:else>
|
||||
<a
|
||||
class="editlock btn btn-default"
|
||||
data-page="{data.row.uid}"
|
||||
data-lockstate="0"
|
||||
title="{f:translate(key: 'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:EditLock_descr2')}"
|
||||
>
|
||||
<core:icon identifier="actions-unlock" />
|
||||
</a>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</span>
|
||||
</td>
|
||||
</f:then>
|
||||
|
||||
<f:else>
|
||||
<f:comment>
|
||||
Root page row is rendered
|
||||
</f:comment>
|
||||
<td align="left" class="nowrap">
|
||||
<f:format.raw>{data.HTML}</f:format.raw>
|
||||
{data.row.title -> f:format.crop(maxCharacters:20)}
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="nowrap"></td>
|
||||
<td class="nowrap"></td>
|
||||
<td class="nowrap"></td>
|
||||
<td class="nowrap"></td>
|
||||
</f:else>
|
||||
</f:if>
|
||||
</tr>
|
||||
</f:for>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<f:format.raw>{cshItem}</f:format.raw>
|
||||
|
||||
<h3><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:Legend" />:</h3>
|
||||
<div class="beuser-legend">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">1</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:1_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">2</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:16_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">3</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:2_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="vr nowrap"><span></span></td>
|
||||
<td class="edge nowrap"><span><span></span></span></td>
|
||||
<td class="hr nowrap"><span></span></td>
|
||||
<td class="nowrap"><span class="number">4</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:4_t" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-granted" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><core:icon identifier="status-status-permission-denied" /></td>
|
||||
<td class="nowrap"><span class="number">5</span></td>
|
||||
<td class="nowrap"><strong><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8" /></strong>: <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:8_t" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<p><f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:def" /></p>
|
||||
<p>
|
||||
<core:icon identifier="status-status-permission-granted" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Granted" /><br/>
|
||||
<core:icon identifier="status-status-permission-denied" /> <f:translate key="LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:A_Denied" />
|
||||
</p>
|
||||
</f:section>
|
||||
@@ -0,0 +1 @@
|
||||
<f:render partial="Permission/Groupname" arguments="{pageId: pageId, groupId: groupId, groupname: groupname}" />
|
||||
@@ -0,0 +1 @@
|
||||
<f:render partial="Permission/Ownername" arguments="{pageId: pageId, userId: userId, username: username}" />
|
||||
@@ -0,0 +1,2 @@
|
||||
{namespace bu=TYPO3\CMS\Beuser\ViewHelpers}
|
||||
<bu:permissions permission="{permission}" scope="{scope}" pageId="{pageId}" />
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 676 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="#59F" d="M0 0h64v64H0z"/><path fill="#FFF" d="M46.6 41.2c-2.815-.768-4.974-1.825-6.976-2.678-.042.543-.243 1.113-.782 1.664-1.62 1.726-4.1 3.814-6.808 3.814-2.719 0-5.288-2.115-6.88-3.817-.558-.573-.743-1.177-.762-1.738-2.007.896-4.17 1.885-6.993 2.655 0 0-3.1 1.9-3.4 8.9h36c-.199-7.1-3.399-8.8-3.399-8.8z"/><path fill="#FFF" d="M40 20.5c0-3.6-3.2-6.5-7-6.5h-2c-3.6 0-7 2.9-7 6.5v5c0 2.109 1.628 4.713 3.5 6.553-.1 5.4-1.7 5.947-.9 6.747 2.5 2.7 8.1 2.9 10.8 0 .797-.797-.59-1.3-.896-6.747C38.333 30.215 39.942 27.59 40 25.5v-5z"/></svg>
|
||||
|
After Width: | Height: | Size: 610 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="#184F44" d="M0 0h64v64H0z"/><path fill="#FFF" d="M45 48H19a1 1 0 0 1-1-1V31a1 1 0 0 1 1-1h26a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1z"/><path fill="#FFF" d="M32 19.5c3.308 0 6 2.692 6 6h4c0-5.523-4.477-10-10-10s-10 4.477-10 10v8h4v-8c0-3.308 2.692-6 6-6z"/><circle fill="#184F44" cx="32" cy="38" r="4"/><path fill="#184F44" d="M30 38h4v6h-4z"/></svg>
|
||||
|
After Width: | Height: | Size: 413 B |
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* This file is part of the TYPO3 CMS project.
|
||||
*
|
||||
* It is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License, either version 2
|
||||
* of the License, or any later version.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* The TYPO3 project - inspiring people to share!
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module: TYPO3/CMS/Beuser/BackendUserListing
|
||||
* JavaScript for backend user listing
|
||||
* @exports TYPO3/CMS/Beuser/BackendUserListing
|
||||
*/
|
||||
define(['jquery', 'TYPO3/CMS/Backend/jquery.clearable'], function($) {
|
||||
|
||||
var $searchFields = $('#tx_Beuser_username');
|
||||
var searchResultShown = ('' !== $searchFields.first().val());
|
||||
|
||||
// make search field clearable
|
||||
$searchFields.clearable({
|
||||
onClear: function() {
|
||||
if (searchResultShown) {
|
||||
$(this).closest('form').submit();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* This file is part of the TYPO3 CMS project.
|
||||
*
|
||||
* It is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License, either version 2
|
||||
* of the License, or any later version.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* The TYPO3 project - inspiring people to share!
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module: TYPO3/CMS/Beuser/ContextMenuActions
|
||||
*
|
||||
* JavaScript to handle permissions module from context menu
|
||||
* @exports TYPO3/CMS/Beuser/ContextMenuActions
|
||||
*/
|
||||
define(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @exports TYPO3/CMS/Beuser/ContextMenuActions
|
||||
*/
|
||||
var ContextMenuActions = {};
|
||||
|
||||
/**
|
||||
* Open permission module for given uid
|
||||
*
|
||||
* @param {string} table
|
||||
* @param {int} uid of the page
|
||||
*/
|
||||
ContextMenuActions.openPermissionsModule = function(table, uid) {
|
||||
if (table === 'pages') {
|
||||
top.TYPO3.Backend.ContentContainer.setUrl(
|
||||
top.TYPO3.settings.AccessPermissions.moduleUrl +
|
||||
'&id=' + uid +
|
||||
'&tx_beuser_system_beusertxpermission[action]=edit' +
|
||||
'&tx_beuser_system_beusertxpermission[controller]=Permission' +
|
||||
'&returnUrl=' + ContextMenuActions.getReturnUrl()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
ContextMenuActions.getReturnUrl = function() {
|
||||
return top.rawurlencode(top.list_frame.document.location.pathname + top.list_frame.document.location.search);
|
||||
};
|
||||
|
||||
return ContextMenuActions;
|
||||
});
|
||||
@@ -0,0 +1,340 @@
|
||||
/*
|
||||
* This file is part of the TYPO3 CMS project.
|
||||
*
|
||||
* It is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License, either version 2
|
||||
* of the License, or any later version.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* The TYPO3 project - inspiring people to share!
|
||||
*/
|
||||
|
||||
/**
|
||||
* Module: TYPO3/CMS/Beuser/Permissons
|
||||
* Javascript functions regarding the permissions module
|
||||
*/
|
||||
define(['jquery'], function($) {
|
||||
|
||||
/**
|
||||
*
|
||||
* @type {{options: {containerSelector: string}}}
|
||||
* @exports TYPO3/CMS/Beuser/Permissons
|
||||
*/
|
||||
var Permissions = {
|
||||
options: {
|
||||
containerSelector: '#typo3-permissionList'
|
||||
}
|
||||
};
|
||||
var ajaxUrl = TYPO3.settings.ajaxUrls['user_access_permissions'];
|
||||
|
||||
/**
|
||||
* Changes the value of the permissions in the form
|
||||
*
|
||||
* @param {String} checknames
|
||||
* @param {String} varname
|
||||
*/
|
||||
Permissions.setCheck = function(checknames, varname) {
|
||||
if (document.editform[varname]) {
|
||||
var res = document.editform[varname].value;
|
||||
for (var a = 1; a <= 5; a++) {
|
||||
document.editform[checknames + '[' + a + ']'].checked = (res & Math.pow(2, a - 1));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* checks for a change of the permissions in the form
|
||||
*
|
||||
* @param {String} checknames
|
||||
* @param {String} varname
|
||||
*/
|
||||
Permissions.checkChange = function(checknames, varname) {
|
||||
var res = 0;
|
||||
for (var a = 1; a <= 5; a++) {
|
||||
if (document.editform[checknames + '[' + a + ']'].checked) {
|
||||
res |= Math.pow(2, a - 1);
|
||||
}
|
||||
}
|
||||
document.editform[varname].value = res | (checknames === 'tx_beuser_system_beusertxpermission[check][perms_user]' ? 1 : 0);
|
||||
Permissions.setCheck(checknames, varname);
|
||||
};
|
||||
|
||||
/**
|
||||
* wrapper function to call a URL in the current frame
|
||||
*/
|
||||
Permissions.jumpToUrl = function(url) {
|
||||
window.location.href = url;
|
||||
};
|
||||
|
||||
/**
|
||||
* changes permissions by sending an AJAX request to the server
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.setPermissions = function($element) {
|
||||
var page = $element.data('page');
|
||||
var who = $element.data('who');
|
||||
var elementSelector = '#' + page + '_' + who;
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'page': page,
|
||||
'who': who,
|
||||
'permissions': $element.data('permissions'),
|
||||
'mode': $element.data('mode'),
|
||||
'bits': $element.data('bits')
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$(elementSelector).replaceWith(data);
|
||||
// Reinitialize tooltip
|
||||
$(elementSelector).find('span').tooltip();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* changes the flag to lock the editing on a page by sending an AJAX request
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.toggleEditLock = function($element) {
|
||||
var page = $element.data('page');
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'action': 'toggle_edit_lock',
|
||||
'page': page,
|
||||
'editLockState': $element.data('lockstate')
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$('#el_' + page).replaceWith(data);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Owner-related: Set the new owner of a page by executing an ajax call
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.changeOwner = function($element) {
|
||||
var page = $element.data('page');
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'action': 'change_owner',
|
||||
'page': page,
|
||||
'ownerUid': $element.data('owner'),
|
||||
'newOwnerUid': $('#new_page_owner').val()
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$('#o_' + page).replaceWith(data);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Owner-related: load the selector for selecting
|
||||
* the owner of a page by executing an ajax call
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.showChangeOwnerSelector = function($element) {
|
||||
var page = $element.data('page');
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'action': 'show_change_owner_selector',
|
||||
'page': page,
|
||||
'ownerUid': $element.data('owner'),
|
||||
'username': $element.data('username')
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$('#o_' + page).replaceWith(data);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Owner-related: Update the HTML view and show the original owner
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.restoreOwner = function($element) {
|
||||
var page = $element.data('page');
|
||||
var username = $element.data('username');
|
||||
var usernameHtml = username;
|
||||
if (typeof username === 'undefined') {
|
||||
username = $('<span>', {
|
||||
'class': 'not_set',
|
||||
'text': '[not set]'
|
||||
});
|
||||
usernameHtml = username.html();
|
||||
username = username.text();
|
||||
}
|
||||
|
||||
var html = $('<span/>', {
|
||||
'id': 'o_' + page
|
||||
});
|
||||
var aSelector = $('<a/>', {
|
||||
'class': 'ug_selector changeowner',
|
||||
'data-page': page,
|
||||
'data-owner': $element.data('owner'),
|
||||
'data-username': usernameHtml,
|
||||
'text': username
|
||||
});
|
||||
html.append(aSelector);
|
||||
|
||||
// Replace content
|
||||
$('#o_' + page).replaceWith(html);
|
||||
};
|
||||
|
||||
/**
|
||||
* Group-related: Set the new group by executing an ajax call
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.changeGroup = function($element) {
|
||||
var page = $element.data('page');
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'action': 'change_group',
|
||||
'page': page,
|
||||
'groupUid': $element.data('groupId'),
|
||||
'newGroupUid': $('#new_page_group').val()
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$('#g_' + page).replaceWith(data);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Group-related: Load the selector by executing an ajax call
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.showChangeGroupSelector = function($element) {
|
||||
var page = $element.data('page');
|
||||
|
||||
$.ajax({
|
||||
url: ajaxUrl,
|
||||
type: 'post',
|
||||
dataType: 'html',
|
||||
cache: false,
|
||||
data: {
|
||||
'action': 'show_change_group_selector',
|
||||
'page': page,
|
||||
'groupUid': $element.data('groupId'),
|
||||
'groupname': $element.data('groupname')
|
||||
}
|
||||
}).done(function(data) {
|
||||
// Replace content
|
||||
$('#g_' + page).replaceWith(data);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Group-related: Update the HTML view and show the original group
|
||||
*
|
||||
* @param {Object} $element
|
||||
*/
|
||||
Permissions.restoreGroup = function($element) {
|
||||
var page = $element.data('page');
|
||||
var groupname = $element.data('groupname');
|
||||
var groupnameHtml = groupname;
|
||||
if (typeof groupname === 'undefined') {
|
||||
groupname = $('<span>', {
|
||||
'class': 'not_set',
|
||||
'text': '[not set]'
|
||||
});
|
||||
groupnameHtml = groupname.html();
|
||||
groupname = groupname.text();
|
||||
}
|
||||
var html = $('<span/>', {
|
||||
'id': 'g_' + page
|
||||
});
|
||||
var aSelector = $('<a/>', {
|
||||
'class': 'ug_selector changegroup',
|
||||
'data-page': page,
|
||||
'data-group': $element.data('groupId'),
|
||||
'data-groupname': groupnameHtml,
|
||||
'text': groupname
|
||||
});
|
||||
html.append(aSelector);
|
||||
|
||||
// Replace content
|
||||
$('#g_' + page).replaceWith(html);
|
||||
};
|
||||
|
||||
/**
|
||||
* initializes events using deferred bound to document
|
||||
* so AJAX reloads are no problem
|
||||
*/
|
||||
Permissions.initializeEvents = function() {
|
||||
|
||||
// Click event to change permissions
|
||||
$(Permissions.options.containerSelector).on('click', '.change-permission', function(evt) {
|
||||
evt.preventDefault();
|
||||
Permissions.setPermissions($(this));
|
||||
}).on('click', '.editlock', function(evt) {
|
||||
// Click event for lock state
|
||||
evt.preventDefault();
|
||||
Permissions.toggleEditLock($(this));
|
||||
}).on('click', '.changeowner', function(evt) {
|
||||
// Click event to change owner
|
||||
evt.preventDefault();
|
||||
Permissions.showChangeOwnerSelector($(this));
|
||||
}).on('click', '.changegroup', function(evt) {
|
||||
// click event to change group
|
||||
evt.preventDefault();
|
||||
Permissions.showChangeGroupSelector($(this));
|
||||
}).on('click', '.restoreowner', function(evt) {
|
||||
// Add click handler for restoring previous owner
|
||||
evt.preventDefault();
|
||||
Permissions.restoreOwner($(this));
|
||||
}).on('click', '.saveowner', function(evt) {
|
||||
// Add click handler for saving owner
|
||||
evt.preventDefault();
|
||||
Permissions.changeOwner($(this));
|
||||
}).on('click', '.restoregroup', function(evt) {
|
||||
// Add click handler for restoring previous group
|
||||
evt.preventDefault();
|
||||
Permissions.restoreGroup($(this));
|
||||
}).on('click', '.savegroup', function(evt) {
|
||||
// Add click handler for saving group
|
||||
evt.preventDefault();
|
||||
Permissions.changeGroup($(this));
|
||||
});
|
||||
};
|
||||
|
||||
$(Permissions.initializeEvents);
|
||||
|
||||
// expose to global
|
||||
TYPO3.Permissions = Permissions;
|
||||
|
||||
return Permissions;
|
||||
});
|
||||
Reference in new issue
Block a user