Advertisement
Lobster_1956

AuthService

Mar 13th, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.80 KB | None | 0 0
  1. <?php
  2. namespace ImF\Cartellverband\Service;
  3.  
  4. class AuthService extends \TYPO3\CMS\Sv\AuthenticationService{
  5.  
  6.   public function getUser() {
  7.         if ($this->login['status']=='login')    {
  8.             $username_t = $this->mres($this->login['uname']);
  9.             $password_t = $this->mres($this->login['uident']);
  10.             $user = $this->getUserFromWebservice($username_t, $password_t);
  11.            
  12.             if(!$user) {
  13.                 // Kein User im Webservice gefunden, also wird der Typo3-FE-User disabled falls er schonmal vorhanden war      
  14.                 $updateArray = array("disable" => '1');                        
  15.                 $res_update = $GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users','username = "'.$username_t.'" AND password = "'.$password_t.'"',$updateArray);                         
  16.                 if(!$res) {
  17.                     return false;
  18.                 }
  19.             }
  20.             else {
  21.                 //write userdata to internal db
  22.                 if($user['Nutzergruppe'] == '200') { $usergroup = 5; }
  23.                 if($user['Nutzergruppe'] == '300') { $usergroup = 3; }
  24.                 if($user['Nutzergruppe'] == '1000') { $usergroup = 4; }
  25.                
  26.                 $userForDb = array(
  27.                     'uid'   => $user['IDMit'],
  28.                     'pid' => '14',
  29.                     'username'  => $username_t,
  30.                     'password' => $password_t,
  31.                     'last_name' => $user['Name'],
  32.                     'first_name' => $user['Vorname'],
  33.                     'name' => $user['Name'].' '.$user['Vorname'],
  34.                     'title' => $user['Titel'],
  35.                     'usergroup' => $usergroup,
  36.                 );
  37.                
  38.                 $res_del = $GLOBALS['TYPO3_DB']->exec_DELETEquery('fe_users', 'uid = '.$user['IDMit']);
  39.                 $res_insert = $GLOBALS['TYPO3_DB']->exec_INSERTquery('fe_users', $userForDb);
  40.        
  41.                 if(!$res) {
  42.                     return false;
  43.                 }
  44.             }
  45.         }
  46.         return $user;
  47.     }
  48.  
  49.     // Webservice
  50.     public function getUserFromWebservice($username, $password) {
  51.         try {                                          
  52.           // SET SOCKET TIMEOUT
  53.           ini_set('default_socket_timeout', 10);               
  54.             $soapclient = new SoapClient('http://sub.domain.tld/CVWebService/v01/cbrauthenticate.asmx?WSDL', array('trace' => 0, 'classmap' => array('LoginRequest' => "LoginRequest")));
  55.             $lr = new LoginRequest();
  56.             $lr->Username = $username;
  57.             $lr->Password = $password;         
  58.             $response = $soapclient->Login(array("req" => $lr));
  59.         } catch(SoapFault $e) {
  60.             // echo 'Exception abgefangen: ',  $e->getMessage(), "<br/>";
  61.         }          
  62.         ini_restore('default_socket_timeout');     
  63.         return $this->handleWebserviceResponse($response);     
  64.     }
  65.    
  66.   public function handleWebserviceResponse($responseObject) {
  67.         if($responseObject->LoginResult->ErrorCode == 0) { 
  68.             return (array)$responseObject->LoginResult;
  69.         } else {
  70.             //some error handling may be done here
  71.             return false;
  72.         }
  73.     }
  74.  
  75.   public function authUser($user){
  76.     return TRUE;
  77.   }
  78.  
  79.   public function mres($value)
  80.     {
  81.         $search = array("\\",  "\x00", "\n",  "\r",  "'",  '"', "\x1a");
  82.         $replace = array("\\\\","\\0","\\n", "\\r", "\'", '\"', "\\Z");
  83.    
  84.         return str_replace($search, $replace, $value);
  85.     }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement