[BUGFIX] Properly escape data in PermissionAjaxController 28/40328/5
authorWouter Wolters <typo3@wouterwolters.nl>
Tue, 16 Jun 2015 19:39:46 +0000 (21:39 +0200)
committerBenjamin Mack <benni@typo3.org>
Sat, 20 Jun 2015 16:36:45 +0000 (18:36 +0200)
Resolves: #48692
Releases: master
Change-Id: Icd8252c81575244bca55515f79b22445a82fcadc
Reviewed-on: http://review.typo3.org/40328
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Benjamin Mack <benni@typo3.org>
Tested-by: Benjamin Mack <benni@typo3.org>
typo3/sysext/beuser/Classes/Controller/PermissionAjaxController.php

index 351af72..83b64d3 100644 (file)
@@ -166,13 +166,16 @@ class PermissionAjaxController {
         * @return string The html select element
         */
        protected function renderUserSelector($page, $ownerUid, $username = '') {
+               $page = (int)$page;
+               $ownerUid = (int)$ownerUid;
                // Get usernames
                $beUsers = BackendUtility::getUserNames();
                // Owner selector:
                $options = '';
                // Loop through the users
                foreach ($beUsers as $uid => $row) {
-                       $selected = $uid == $ownerUid ? ' selected="selected"' : '';
+                       $uid = (int)$uid;
+                       $selected = $uid === $ownerUid ? ' selected="selected"' : '';
                        $options .= '<option value="' . $uid . '"' . $selected . '>' . htmlspecialchars($row['username']) . '</option>';
                }
                $elementId = 'o_' . $page;
@@ -192,6 +195,9 @@ class PermissionAjaxController {
         * @return string The html select element
         */
        protected function renderGroupSelector($page, $groupUid, $groupname = '') {
+               $page = (int)$page;
+               $groupUid = (int)$groupUid;
+
                // Get usernames
                $beGroupsO = $beGroups = BackendUtility::getGroupNames();
                // Group selector:
@@ -200,7 +206,8 @@ class PermissionAjaxController {
                $userset = 0;
                // Loop through the groups
                foreach ($beGroups as $uid => $row) {
-                       if ($uid == $groupUid) {
+                       $uid = (int)$uid;
+                       if ($uid === $groupUid) {
                                $userset = 1;
                                $selected = ' selected="selected"';
                        } else {
@@ -261,10 +268,11 @@ class PermissionAjaxController {
         * @return string The new edit lock string wrapped in HTML
         */
        protected function renderToggleEditLock($page, $editLockState) {
+               $page = (int)$page;
                if ($editLockState === 1) {
-                       $ret = '<span id="el_' . $page . '"><a class="editlock" data-page="' . (int)$page . '" data-lockstate="1" title="The page and all content is locked for editing by all non-Admin users.">' . IconUtility::getSpriteIcon('status-warning-lock') . '</a></span>';
+                       $ret = '<span id="el_' . $page . '"><a class="editlock" data-page="' . $page . '" data-lockstate="1" title="The page and all content is locked for editing by all non-Admin users.">' . IconUtility::getSpriteIcon('status-warning-lock') . '</a></span>';
                } else {
-                       $ret = '<span id="el_' . $page . '"><a class="editlock" data-page="' . (int)$page . '" data-lockstate="0" title="Enable the &raquo;Admin-only&laquo; edit lock for this page">[+]</a></span>';
+                       $ret = '<span id="el_' . $page . '"><a class="editlock" data-page="' . $page . '" data-lockstate="0" title="Enable the &raquo;Admin-only&laquo; edit lock for this page">[+]</a></span>';
                }
                return $ret;
        }