[!!!][TASK] Drop field be_groups:hide_in_lists 79/53179/3
authorChristian Kuhn <lolli@schwarzbu.ch>
Fri, 9 Jun 2017 16:45:57 +0000 (18:45 +0200)
committerBenni Mack <benni@typo3.org>
Sat, 15 Jul 2017 21:07:50 +0000 (23:07 +0200)
The ancient field 'hide_in_lists' is of very little use within
the group administration. The documented use case of having
this field set for base groups doesn't make much sense, since
especially those groups are used for page ownerships and the
permission module is the only backend usage which then hides
groups with this field set. All in all, this field is probably
extremely rarely used and only increases complexity of access
rights management.
For the sake of a cleaner backend, the field is dropped.

Change-Id: Id41be5e563dfe16f380d36446646951507d8e5d1
Resolves: #81534
Releases: master
Reviewed-on: https://review.typo3.org/53179
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
13 files changed:
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/beuser/Classes/Controller/PermissionAjaxController.php
typo3/sysext/beuser/Classes/Controller/PermissionController.php
typo3/sysext/core/Configuration/TCA/be_groups.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-81534-DatabaseFieldBe_groupshide_in_listsDropped.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Deprecation-81534-BackendUtilitygetListGroupNamesDeprecated.r [new file with mode: 0644]
typo3/sysext/core/Tests/Functional/Tca/BackendGroupsVisibleFieldsTest.php
typo3/sysext/core/ext_tables.sql
typo3/sysext/extbase/Classes/Domain/Model/BackendUserGroup.php
typo3/sysext/extbase/Tests/Unit/Domain/Model/BackendUserGroupTest.php
typo3/sysext/extbase/ext_typoscript_setup.txt
typo3/sysext/lang/Resources/Private/Language/locallang_csh_be_groups.xlf
typo3/sysext/lang/Resources/Private/Language/locallang_tca.xlf

index da68505..0953545 100644 (file)
@@ -1012,13 +1012,15 @@ class BackendUtility
      *
      * @param string $fields Field list; $fields specify the fields selected (default: title,uid)
      * @return    array
+     * @deprecated since TYPO3 9, will be removed in TYPO3 10
      */
     public static function getListGroupNames($fields = 'title, uid')
     {
+        GeneralUtility::logDeprecatedFunction();
         $beUser = static::getBackendUserAuthentication();
-        $exQ = ' AND hide_in_lists=0';
+        $exQ = '';
         if (!$beUser->isAdmin()) {
-            $exQ .= ' AND uid IN (' . ($beUser->user['usergroup_cached_list'] ?: 0) . ')';
+            $exQ = ' AND uid IN (' . ($beUser->user['usergroup_cached_list'] ?: 0) . ')';
         }
         return self::getGroupNames($fields, $exQ);
     }
index b1b5667..cac9541 100644 (file)
@@ -220,8 +220,8 @@ class PermissionAjaxController
         $page = (int)$page;
         $groupUid = (int)$groupUid;
 
-        // Get usernames
-        $beGroupsO = $beGroups = BackendUtility::getListGroupNames();
+        // Get group names
+        $beGroupsO = $beGroups = BackendUtility::getGroupNames();
         // Group selector:
         $options = '';
         // flag: is set if the page-groupid equals one from the group-list
index dea4afe..81155f0 100644 (file)
@@ -282,8 +282,8 @@ class PermissionController extends ActionController
                 FlashMessage::WARNING
             );
         }
-        // Get usernames and groupnames
-        $beGroupArray = BackendUtility::getListGroupNames('title,uid');
+        // Get user names and group names
+        $beGroupArray = BackendUtility::getGroupNames();
         $beUserArray  = BackendUtility::getUserNames();
 
         // Owner selector
index e85f246..c050abd 100644 (file)
@@ -233,13 +233,6 @@ return [
                 'fixedFont' => true,
             ],
         ],
-        'hide_in_lists' => [
-            'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:be_groups.hide_in_lists',
-            'config' => [
-                'type' => 'check',
-                'default' => 0
-            ]
-        ],
         'subgroup' => [
             'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:be_groups.subgroup',
             'config' => [
@@ -283,7 +276,7 @@ return [
             --div--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:be_groups.tabs.options,
                 lockToDomain, TSconfig,
             --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,
-                hidden,hide_in_lists,
+                hidden,
             --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,
                 description,
             --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended,
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-81534-DatabaseFieldBe_groupshide_in_listsDropped.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-81534-DatabaseFieldBe_groupshide_in_listsDropped.rst
new file mode 100644 (file)
index 0000000..5f7edf7
--- /dev/null
@@ -0,0 +1,40 @@
+.. include:: ../../Includes.txt
+
+=================================================================
+Breaking: #81534 - Database field be_groups:hide_in_lists dropped
+=================================================================
+
+See :issue:`81534`
+
+Description
+===========
+
+The database field hide_in_lists of table be_groups has been dropped without substitution.
+
+* The property has been dropped from PHP class :php:`TYPO3\CMS\Extbase\Domain\Model\BackendUserGroup` along with
+  the getter and setter methods :php:`->setHideInList` and :php:`->getHideInList`
+* The TCA column :php:`hide_in_lists` has been dropped, the field is no longer configured and shown in the backend.
+* The database field definition for :php:`hide_in_lists` has been dropped.
+
+
+Impact
+======
+
+The special group configuration hide_in_lists has been removed.
+
+
+Affected Installations
+======================
+
+An instance may break in the unlikely case that an extension relies on field existance or uses
+the extbase model getter or setter.
+
+
+Migration
+=========
+
+The field usage should be dropped. If that is not possible and a special functionality has been bound to that
+field it should be mimicked by extending TCA, declaring the database field in an extension and maybe extending
+the extbase model.
+
+.. index:: Database, TCA
\ No newline at end of file
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-81534-BackendUtilitygetListGroupNamesDeprecated.r b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-81534-BackendUtilitygetListGroupNamesDeprecated.r
new file mode 100644 (file)
index 0000000..2bde11e
--- /dev/null
@@ -0,0 +1,35 @@
+.. include:: ../../Includes.txt
+
+====================================================================
+Deprecation: #81534 - BackendUtility::getListGroupNames() deprecated
+====================================================================
+
+See :issue:`81534`
+
+Description
+===========
+
+PHP method :php:`BackendUtility::getListGroupNames()` has been dropped due to
+the removal of database field :php:`hide_in_lists`.
+
+
+Impact
+======
+
+The methods shouldn't be used anymore. If still used, the where constraint on filed
+hide_in_lists is no longer considered.
+
+
+Affected Installations
+======================
+
+Extensions using above method should switch to an alternative.
+
+
+Migration
+=========
+
+Use method :php:`BackendUtility::getGroupNames()` instead and keep an eye on the
+different non-admin use of the method if switching.
+
+.. index:: Database, PHP-API, TCA
\ No newline at end of file
index 4a670ed..b03153a 100644 (file)
@@ -38,7 +38,6 @@ class BackendGroupsVisibleFieldsTest extends \TYPO3\TestingFramework\Core\Functi
         'file_permissions',
         'category_perms',
         'lockToDomain',
-        'hide_in_lists',
         'TSconfig',
     ];
 
index 50298c4..1874d91 100644 (file)
@@ -25,7 +25,6 @@ CREATE TABLE be_groups (
        deleted tinyint(1) unsigned DEFAULT '0' NOT NULL,
        TSconfig text,
        subgroup text,
-       hide_in_lists tinyint(4) DEFAULT '0' NOT NULL,
        workspace_perms tinyint(3) DEFAULT '1' NOT NULL,
        category_perms text,
        PRIMARY KEY (uid),
index c9b676b..e0c7d27 100644 (file)
@@ -98,11 +98,6 @@ class BackendUserGroup extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
     protected $lockToDomain = '';
 
     /**
-     * @var bool
-     */
-    protected $hideInList = false;
-
-    /**
      * @var string
      */
     protected $tsConfig = '';
@@ -506,26 +501,6 @@ class BackendUserGroup extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
     }
 
     /**
-     * Setter for hide in list
-     *
-     * @param bool $hideInList
-     */
-    public function setHideInList($hideInList)
-    {
-        $this->hideInList = $hideInList;
-    }
-
-    /**
-     * Getter for hide in list
-     *
-     * @return bool
-     */
-    public function getHideInList()
-    {
-        return $this->hideInList;
-    }
-
-    /**
      * Setter for ts config
      *
      * @param string $tsConfig
index cc770ad..793afe0 100644 (file)
@@ -444,23 +444,6 @@ class BackendUserGroupTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCas
     /**
      * @test
      */
-    public function getHideInListInitiallyReturnsFalse()
-    {
-        $this->assertFalse($this->subject->getHideInList());
-    }
-
-    /**
-     * @test
-     */
-    public function setHideInListSetsHideInList()
-    {
-        $this->subject->setHideInList(true);
-        $this->assertTrue($this->subject->getHideInList());
-    }
-
-    /**
-     * @test
-     */
     public function getTsConfigInitiallyReturnsEmptyString()
     {
         $this->assertSame('', $this->subject->getTsConfig());
index 528e6a9..0eb0c73 100644 (file)
@@ -62,7 +62,6 @@ config.tx_extbase {
                                                db_mountpoints.mapOnProperty = databaseMounts
                                                file_permissions.mapOnProperty = fileOperationPermissions
                                                lockToDomain.mapOnProperty = lockToDomain
-                                               hide_in_lists.mapOnProperty = hideInList
                                                TSconfig.mapOnProperty = tsConfig
                                        }
                                }
index a1de287..eaa61b0 100644 (file)
@@ -287,13 +287,6 @@ EXT:lang/Resources/Public/Images/cshimages/be_groups_17.png</source>
                                <source>In the TSconfig field help is right at hand - just click the TS wizard icon, then a window will pop up.
 In the pop-up window you will see a tree of possible configuration values. These are extracted from the TSconfig manual. You can click around to find the options you need to set through this wizard.</source>
                        </trans-unit>
-                       <trans-unit id="hide_in_lists.description">
-                               <source>This option will prevent the user group from showing up in lists, where user groups are selected.</source>
-                       </trans-unit>
-                       <trans-unit id="hide_in_lists.details" xml:space="preserve">
-                               <source>This will affect the list of user groups in the Task Center To-Do and Messages parts as well as the Web&gt;Access module.
-The option is extremely useful if you have general user groups defining some global properties which all your users are members of. Then you would probably not like all those users to 'see' each other through the membership of this group, for instance sending messages or To-Dos to each other. And this is what is option will prevent.</source>
-                       </trans-unit>
                        <trans-unit id="subgroup.description">
                                <source>All settings from the selected groups will be merged with the properties from this group, for example DB mounts, permissions, TSconfig, etc.</source>
                        </trans-unit>
index c5bdc22..eb98923 100644 (file)
                        <trans-unit id="be_groups.inc_access_lists">
                                <source>Include Access Lists:</source>
                        </trans-unit>
-                       <trans-unit id="be_groups.hide_in_lists">
-                               <source>Hide in lists:</source>
-                       </trans-unit>
                        <trans-unit id="be_groups.subgroup">
                                <source>Inherit settings from groups:</source>
                        </trans-unit>