Fixed bug #9172: Wrong display of deleted owners and groups in Web->Access->Permissio...
authorJeff Segars <jsegars@alumni.rice.edu>
Mon, 15 Sep 2008 03:49:49 +0000 (03:49 +0000)
committerJeff Segars <jsegars@alumni.rice.edu>
Mon, 15 Sep 2008 03:49:49 +0000 (03:49 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@4117 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/mod/web/perm/class.sc_mod_web_perm_ajax.php
typo3/mod/web/perm/index.php
typo3/sysext/lang/locallang_mod_web_perm.xml

index bedb99b..35b5db9 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,7 @@
 2008-09-14  Jeff Segars  <jeff@webempoweredchurch.org>
 
        * Added feature #3687: Disable "versioning" and "moreoptions"-menuitem via contextMenu.[key].disableItems in User TSconfig (thanks to Susanne Moog)
+       * Fixed bug #9172: Wrong display of deleted owners and groups in Web->Access->Permissions (thanks to Johannes Pieper)
 
 2008-09-14  Dmitry Dulepov  <dmitry@typo3.org>
 
index 68905cc..3d24011 100644 (file)
@@ -318,11 +318,12 @@ class SC_mod_web_perm_ajax {
         * @param       Integer         $page: The TYPO3 page id
         * @param       Integer         $ownerUid: The new page user uid
         * @param       String          $username: The TYPO3 BE username (used to display in the element)
+        * @param       Boolean         $validUser: Must be set to FALSE, if the user has no name or is deleted
         * @return      String          The new group wrapped in HTML
         */
-       public function renderOwnername($page, $ownerUid, $username) {
+       public function renderOwnername($page, $ownerUid, $username, $validUser = true) {
                $elementId = 'o_'.$page;
-               $ret = '<span id="'.$elementId.'"><a class="ug_selector" onclick="WebPermissions.showChangeOwnerSelector('.$page.', '.$ownerUid.', \''.$elementId.'\', \''.htmlspecialchars($username).'\');">'.($username == '' ? '<span class=not_set>[not set]</span>' : htmlspecialchars(t3lib_div::fixed_lgd_cs($username, 20))).'</a></span>';
+               $ret = '<span id="' . $elementId . '"><a class="ug_selector onclick="WebPermissions.showChangeOwnerSelector(' . $page . ', ' . $ownerUid . ', \'' . $elementId.'\', \'' . htmlspecialchars($username) . '\');">' . ($validUser ? ($username == '' ? ('<span class=not_set>['. $GLOBALS['LANG']->getLL('notSet') .']</span>') : htmlspecialchars(t3lib_div::fixed_lgd_cs($username, 20))) :  ('<span class=not_set title="' . htmlspecialchars(t3lib_div::fixed_lgd_cs($username, 20)) . '">[' . $GLOBALS['LANG']->getLL('deleted') . ']</span>')) . '</a></span>';
                return $ret;
        }
 
@@ -333,11 +334,12 @@ class SC_mod_web_perm_ajax {
         * @param       Integer         $page: The TYPO3 page id
         * @param       Integer         $groupUid: The new page group uid
         * @param       String          $groupname: The TYPO3 BE groupname (used to display in the element)
+        * @param       Boolean         $validGroup: Must be set to FALSE, if the group has no name or is deleted
         * @return      String          The new group wrapped in HTML
         */
-       public function renderGroupname($page, $groupUid, $groupname) {
+       public function renderGroupname($page, $groupUid, $groupname, $validGroup = true) {
                $elementId = 'g_'.$page;
-               $ret = '<span id="'.$elementId.'"><a class="ug_selector" onclick="WebPermissions.showChangeGroupSelector('.$page.', '.$groupUid.', \''.$elementId.'\', \''.htmlspecialchars($groupname).'\');">'.($groupname == '' ? '<span class=not_set>[not set]</span>' : htmlspecialchars(t3lib_div::fixed_lgd_cs($groupname, 20))).'</a></span>';
+               $ret = '<span id="'.$elementId . '"><a class="ug_selector" onclick="WebPermissions.showChangeGroupSelector(' . $page . ', ' . $groupUid . ', \'' . $elementId . '\', \'' . htmlspecialchars($groupname) . '\');">'. ($validGroup ? ($groupname == '' ? ('<span class=not_set>['. $GLOBALS['LANG']->getLL('notSet') .']</span>') : htmlspecialchars(t3lib_div::fixed_lgd_cs($groupname, 20))) : ('<span class=not_set title="' . htmlspecialchars(t3lib_div::fixed_lgd_cs($groupname, 20)) . '">[' . $GLOBALS['LANG']->getLL('deleted') . ']</span>')) . '</a></span>';
                return $ret;
        }
 
index de9353b..d12419a 100755 (executable)
@@ -623,12 +623,19 @@ class SC_mod_web_perm_index {
                        $lE_bgCol = $bgCol;
 
                                // User/Group names:
-                       $userName = $beUserArray[$data['row']['perms_userid']] ? $beUserArray[$data['row']['perms_userid']]['username'] : ($data['row']['perms_userid'] ? '<i>['.$data['row']['perms_userid'].']!</i>' : '');
-                       $userName = SC_mod_web_perm_ajax::renderOwnername($pageId, $data['row']['perms_userid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($userName, 20)));
-
-                       $groupName = $beGroupArray[$data['row']['perms_groupid']] ? $beGroupArray[$data['row']['perms_groupid']]['title']  : ($data['row']['perms_groupid'] ? '<i>['.$data['row']['perms_groupid'].']!</i>' : '');
-                       $groupName = SC_mod_web_perm_ajax::renderGroupname($pageId, $data['row']['perms_groupid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($groupName, 20)));
+                       $userName = $beUserArray[$data['row']['perms_userid']] ? $beUserArray[$data['row']['perms_userid']]['username'] : ($data['row']['perms_userid'] ?  $data['row']['perms_userid'] : '');
+                       if ($data['row']['perms_userid'] && (!$beUserArray[$data['row']['perms_userid']])) {
+                               $userName = SC_mod_web_perm_ajax::renderOwnername($pageId, $data['row']['perms_userid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($userName, 20)), false);
+                       } else {
+                               $userName = SC_mod_web_perm_ajax::renderOwnername($pageId, $data['row']['perms_userid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($userName, 20)));
+                       }
 
+                       $groupName = $beGroupArray[$data['row']['perms_groupid']] ? $beGroupArray[$data['row']['perms_groupid']]['title']  : ($data['row']['perms_groupid'] ?  $data['row']['perms_groupid']  : '');
+                       if ($data['row']['perms_groupid'] && (!$beGroupArray[$data['row']['perms_groupid']])) {
+                               $groupName = SC_mod_web_perm_ajax::renderGroupname($pageId, $data['row']['perms_groupid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($groupName, 20)), false);
+                       } else {
+                               $groupName = SC_mod_web_perm_ajax::renderGroupname($pageId, $data['row']['perms_groupid'], htmlspecialchars(t3lib_div::fixed_lgd_cs($groupName, 20)));
+                       }
 
                                // Seeing if editing of permissions are allowed for that page:
                        $editPermsAllowed = ($data['row']['perms_userid'] == $BE_USER->user['uid'] || $BE_USER->isAdmin());
index e613b0c..e004e60 100755 (executable)
@@ -42,6 +42,8 @@
                        <label index="mlang_tabs_tab">Access</label>
                        <label index="WorkspaceWarning">Workspace Warning</label>
                        <label index="WorkspaceWarningText">Permissions you set in the workspace are effective on the elements only &lt;em&gt;after&lt;/em&gt; 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)</label>
+                       <label index="notSet">not set</label>
+                       <label index="deleted">deleted</label>
                </languageKey>
        </data>
 </T3locallang>
\ No newline at end of file