Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace ImF\Cartellverband\Service;
- class AuthService extends \TYPO3\CMS\Sv\AuthenticationService{
- public function getUser() {
- if ($this->login['status']=='login') {
- $username_t = $this->mres($this->login['uname']);
- $password_t = $this->mres($this->login['uident']);
- $user = $this->getUserFromWebservice($username_t, $password_t);
- if(!$user) {
- // Kein User im Webservice gefunden, also wird der Typo3-FE-User disabled falls er schonmal vorhanden war
- $updateArray = array("disable" => '1');
- $res_update = $GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users','username = "'.$username_t.'" AND password = "'.$password_t.'"',$updateArray);
- if(!$res) {
- return false;
- }
- }
- else {
- //write userdata to internal db
- if($user['Nutzergruppe'] == '200') { $usergroup = 5; }
- if($user['Nutzergruppe'] == '300') { $usergroup = 3; }
- if($user['Nutzergruppe'] == '1000') { $usergroup = 4; }
- $userForDb = array(
- 'uid' => $user['IDMit'],
- 'pid' => '14',
- 'username' => $username_t,
- 'password' => $password_t,
- 'last_name' => $user['Name'],
- 'first_name' => $user['Vorname'],
- 'name' => $user['Name'].' '.$user['Vorname'],
- 'title' => $user['Titel'],
- 'usergroup' => $usergroup,
- );
- $res_del = $GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_users', 'uid = '.$user['IDMit']);
- $res_insert = $GLOBALS['TYPO3_DB']->exec_INSERTquery('fe_users', $userForDb);
- if(!$res) {
- return false;
- }
- }
- }
- return $user;
- }
- // Webservice
- public function getUserFromWebservice($username, $password) {
- try {
- // SET SOCKET TIMEOUT
- ini_set('default_socket_timeout', 10);
- $soapclient = new SoapClient('http://sub.domain.tld/CVWebService/v01/cbrauthenticate.asmx?WSDL', array('trace' => 0, 'classmap' => array('LoginRequest' => "LoginRequest")));
- $lr = new LoginRequest();
- $lr->Username = $username;
- $lr->Password = $password;
- $response = $soapclient->Login(array("req" => $lr));
- } catch(SoapFault $e) {
- // echo 'Exception abgefangen: ', $e->getMessage(), "<br/>";
- }
- ini_restore('default_socket_timeout');
- return $this->handleWebserviceResponse($response);
- }
- public function handleWebserviceResponse($responseObject) {
- if($responseObject->LoginResult->ErrorCode == 0) {
- return (array)$responseObject->LoginResult;
- } else {
- //some error handling may be done here
- return false;
- }
- }
- public function authUser($user){
- return TRUE;
- }
- public function mres($value)
- {
- $search = array("\\", "\x00", "\n", "\r", "'", '"', "\x1a");
- $replace = array("\\\\","\\0","\\n", "\\r", "\'", '\"', "\\Z");
- return str_replace($search, $replace, $value);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement