Added feature #10585: Enable BE-User to change their OpenID
authorSteffen Kamper <info@sk-typo3.de>
Sat, 19 Sep 2009 22:38:38 +0000 (22:38 +0000)
committerSteffen Kamper <info@sk-typo3.de>
Sat, 19 Sep 2009 22:38:38 +0000 (22:38 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@6003 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/openid/class.tx_openid_mod_setup.php [new file with mode: 0644]
typo3/sysext/openid/ext_localconf.php
typo3/sysext/openid/ext_tables.php
typo3/sysext/openid/locallang_csh.xml
typo3/sysext/openid/locallang_csh_mod.xml [new file with mode: 0644]
typo3/sysext/openid/locallang_db.xml

index 4d27ba4..f7f0444 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
 
 2009-09-19  Steffen Kamper  <info@sk-typo3.de>
 
+       * Added feature #10585: Enable BE-User to change their OpenID
        * Added feature #12008: User setup misses a function for inserting fields at a position
        * Fixed bug #12003: EncryptionKey generation in install tool (1-2-3-mode) still uses old encryption
        * Fixed bug #11884: User setup: buttons for create/delete ENABLE_INSTALL_TOOL-file are not integrated in user setup
diff --git a/typo3/sysext/openid/class.tx_openid_mod_setup.php b/typo3/sysext/openid/class.tx_openid_mod_setup.php
new file mode 100644 (file)
index 0000000..a61c9bf
--- /dev/null
@@ -0,0 +1,67 @@
+<?php\r
+/***************************************************************\r
+*  Copyright notice\r
+*\r
+*  (c) 2009 Steffen Gebert <steffen@steffen-gebert.de>\r
+*  All rights reserved\r
+*\r
+*  This script is part of the TYPO3 project. The TYPO3 project is\r
+*  free software; you can redistribute it and/or modify\r
+*  it under the terms of the GNU General Public License as published by\r
+*  the Free Software Foundation; either version 2 of the License, or\r
+*  (at your option) any later version.\r
+*\r
+*  The GNU General Public License can be found at\r
+*  http://www.gnu.org/copyleft/gpl.html.\r
+*\r
+*  This script is distributed in the hope that it will be useful,\r
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+*  GNU General Public License for more details.\r
+*\r
+*  This copyright notice MUST APPEAR in all copies of the script!\r
+***************************************************************/\r
+/**\r
+ * [CLASS/FUNCTION INDEX of SCRIPT]\r
+ */\r
+\r
+/**\r
+ * This class is the OpenID return script for the TYPO3 Backend.\r
+ *\r
+ * $Id$\r
+ *\r
+ * @author     Steffen Gebert <steffen@steffen-gebert.de>\r
+ */\r
+class tx_openid_mod_setup {\r
+\r
+       /**\r
+        * Checks weather BE user has access to change its OpenID identifier\r
+        *\r
+        * @param $config       config of the field\r
+        * @return boolean      TRUE if user has access, false if not\r
+        */\r
+       public function accessLevelCheck($config) {\r
+               $setupConfig = $GLOBALS['BE_USER']->getTSConfigProp('setup.fields');\r
+               if (isset($setupConfig['tx_openid_openid.']['disabled']) && $setupConfig['tx_openid_openid.']['disabled'] == 1) {\r
+                       return FALSE;\r
+               }\r
+               return TRUE;\r
+       }\r
+\r
+       /**\r
+        * Render OpenID identifier field for user setup\r
+        *\r
+        * @param $params       config of the field\r
+        * @param $ref          $class reference\r
+        * @return      HTML code for input field or only OpenID if change not allowed\r
+        */\r
+       public function renderOpenID($params, $ref) {\r
+               $openid = $GLOBALS['BE_USER']->user['tx_openid_openid'];\r
+               return '<input id="field_tx_openid_openid" type="text" name="data[be_users][tx_openid_openid]" value="' . $openid . '" style="width:192px;" />';\r
+       }\r
+}\r
+\r
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/openid/class.tx_openid_mod_setup.php']) {\r
+       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/openid/class.tx_openid_mod_setup.php']);\r
+}\r
+?>
\ No newline at end of file
index c9d3435..84f67ee 100644 (file)
@@ -23,4 +23,6 @@ t3lib_extMgm::addService($_EXTKEY, 'auth' /* sv type */,  'tx_openid_sv1' /* sv
 // Register eID script that performs final FE user authentication. It will be called by the OpenID provider
 $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['tx_openid'] = 'EXT:openid/class.tx_openid_eid.php';
 
+$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['accessLevelCheck']['tx_openid_mod_setup'] = 'EXT:openid/class.tx_openid_mod_setup.php';
+
 ?>
\ No newline at end of file
index 22b51b3..ada39de 100644 (file)
@@ -25,18 +25,7 @@ t3lib_extMgm::addToAllTCAtypes('be_users','tx_openid_openid;;;;1-1-1', '', 'afte
 t3lib_extMgm::addLLrefForTCAdescr('be_users', 'EXT:' . $_EXTKEY . '/locallang_csh.xml');
 
 // Prepare new columns for fe_users table
-$tempColumns = array (
-       'tx_openid_openid' => array (
-               'exclude' => 0,
-               'label' => 'LLL:EXT:openid/locallang_db.xml:fe_users.tx_openid_openid',
-               'config' => array (
-                       'type' => 'input',
-                       'size' => '30',
-                       // Requirement: uniqueInPid (FE users are pid-specific)
-                       'eval' => 'trim,nospace,uniqueInPid',
-               )
-       ),
-);
+$tempColumns['tx_openid_openid']['config']['eval'] = 'trim,nospace,uniqueInPid';
 
 // Add new columns to fe_users table
 t3lib_div::loadTCA('fe_users');
@@ -44,4 +33,15 @@ t3lib_extMgm::addTCAcolumns('fe_users', $tempColumns, false);
 t3lib_extMgm::addFieldsToAllPalettesOfField('fe_users', 'username', 'tx_openid_openid');
 t3lib_extMgm::addLLrefForTCAdescr('fe_users', 'EXT:' . $_EXTKEY . '/locallang_csh.xml');
 
+// Add field to setup module
+$GLOBALS['TYPO3_USER_SETTINGS']['columns']['tx_openid_openid'] = array(
+       'type' => 'user',
+       'table' => 'be_users',
+       'label' => 'LLL:EXT:openid/locallang_db.xml:_MOD_user_setup.tx_openid_openid',
+       'csh' => 'tx_openid_openid',
+       'userFunc' => 'EXT:openid/class.tx_openid_mod_setup.php:tx_openid_mod_setup->renderOpenID',
+       'access' => 'tx_openid_mod_setup'
+);
+t3lib_extMgm::addFieldsToUserSettings('tx_openid_openid', 'after:password2');
+t3lib_extMgm::addLLrefForTCAdescr('_MOD_user_setup','EXT:openid/locallang_csh_mod.xml');
 ?>
\ No newline at end of file
index 88201a5..b976a82 100644 (file)
@@ -14,6 +14,7 @@
             <label index="tx_openid_openid.description">OpenID identifier</label>
             <label index="tx_openid_openid.details">This field contains option OpenID identifier. If the field is not empty, users can login to the system using their OpenID identifier.</label>
             <label index="tx_openid_openid.seeAlso">http://openid.net/</label>
+            <label index="tx_openid_change_allowed.description">If this setting is active, users can change their own OpenID identifier using the setup module.</label>
         </languageKey>
     </data>
 </T3locallang>
\ No newline at end of file
diff --git a/typo3/sysext/openid/locallang_csh_mod.xml b/typo3/sysext/openid/locallang_csh_mod.xml
new file mode 100644 (file)
index 0000000..eef8066
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>\r
+<!-- $Id$ -->\r
+<T3locallang>\r
+    <meta type="array">\r
+        <description>CSH labels</description>\r
+        <type>CSH</type>\r
+        <csh_table>openid</csh_table>\r
+        <fileId>EXT:openid/locallang_csh_mod.xml</fileId>\r
+        <labelContext type="array">\r
+        </labelContext>\r
+    </meta>\r
+    <data type="array">\r
+        <languageKey index="default" type="array">\r
+            <label index="option_tx_openid_openid.alttitle">OpenID identifier</label>\r
+            <label index="option_tx_openid_openid.description">Enter your OpenID identifier here, if you use want to use OpenID for backend logins.</label>\r
+            <label index="option_tx_openid_openid.details">OpenID is a free and open system to login to websites using only one single password (for your OpenID-provider). If you want to login to TYPO3 backend, enter your identifier here. Your identifier is an URL starting with http:// or https://.</label>\r
+            <label index="option_tx_openid_openid.seeAlso">http://openid.net | http://openid.net/</label>\r
+        </languageKey>\r
+    </data>\r
+</T3locallang>
\ No newline at end of file
index b069aef..5cfc935 100644 (file)
@@ -8,6 +8,8 @@
                <languageKey index="default" type="array">
                        <label index="be_users.tx_openid_openid">OpenID identifier:</label>
                        <label index="fe_users.tx_openid_openid">OpenID identifier:</label>
+                       <label index="be_groups.tx_openid_change_allowed">Change own OpenID:</label>
+                       <label index="_MOD_user_setup.tx_openid_openid">OpenID identifier</label>
                </languageKey>
        </data>
 </T3locallang>
\ No newline at end of file