Untitled

From Stained Parakeet, 1 Month ago, written in Plain Text, viewed 13 times.
URL https://paste.hynity.com/view/38ea46b1 Embed
Download Paste or View Raw
  1. <?php
  2.  
  3. class AuthController extends AppController {
  4.  
  5.     var $components = array('Security');
  6.  
  7.     public function beforeFilter()
  8.     {
  9.         parent::beforeFilter();
  10.         $this->Security->csrfCheck = false;
  11.         $this->Security->validatePost = true;
  12.         $this->Security->unlockedActions;
  13.     }
  14.  
  15.  
  16.     //Erreurs possibles
  17.     public function errorPost() {
  18.          $error_isnotpost = array(
  19.             'Status'    => 'error',
  20.             'Error'     => 'Request must be done in POST'
  21.         );
  22.        
  23.         echo json_encode($error_isnotpost);
  24.         exit;
  25.  
  26.     }
  27.     public function errCreditentialsInvalid()
  28.     {
  29.         $err = array(
  30.             'Status' => 'Error',
  31.             'Error' => 'Invalid username or password. Please retry.'
  32.         );
  33.  
  34.         echo json_encode($err);
  35.         exit;
  36.     }
  37.  
  38.     public function getClientToken() {
  39.         // Just generating a random client token and returning it
  40.         return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
  41.             mt_rand( 0, 0xffff ),
  42.             mt_rand( 0, 0xffff ),
  43.             mt_rand( 0, 0xffff ),
  44.             mt_rand( 0, 0x0fff ) | 0x4000,
  45.             mt_rand( 0, 0x3fff ) | 0x8000,
  46.             mt_rand( 0, 0xffff ),
  47.             mt_rand( 0, 0xffff ),
  48.             mt_rand( 0, 0xffff )
  49.         );
  50.     }
  51.  
  52.     //Permet d'initialiser l'utilisateur et/ou de générer un token
  53.     function start($username, $password)
  54.     {
  55.         $this->loadModel('User');
  56.         if(isset($username) && isset($password)){
  57.             if(!empty($username) && !empty($password))
  58.             {
  59.                 $user = $this->User->getAllFromUser($username);
  60.                 if($user['password'] == $password){
  61.                     $userId = $user['id'];
  62.                     if(empty($user['auth-uuid'])){
  63.                         $uuid = md5($user["pseudo"]);
  64.                         $this->User->setToUser("auth-uuid", $uuid, $userId);
  65.                     }
  66.                     $accessToken = md5(uniqid(rand(), true));
  67.                     $clientToken = $this->getClientToken();
  68.                     $this->User->read(null, $userId);
  69.                     $this->User->set(array(
  70.                             'auth-accessToken' => $accessToken,
  71.                             'auth-clientToken' => $clientToken
  72.                     ));
  73.                     $this->User->save();
  74.                 }else{
  75.                     echo 'error_password';
  76.                     exit;
  77.                 }
  78.             }else{
  79.                 echo 'Empty Get';
  80.                 exit;
  81.             }
  82.         }else{
  83.             echo 'Error Set';
  84.             exit;
  85.         }
  86.     }
  87.  
  88.  
  89.  
  90.     //Permet d'authentifier l'utilisateur
  91.     public function authenticate()
  92.     {
  93.         $this->Security->csrfCheck = false;
  94.         $this->response->type('json');
  95.         $this->Security->validatePost = false;
  96.         if($this->request->is('post')){
  97.         $this->loadModel('User');
  98.         $this->loadModel('Auth.Rank');
  99.         $data = $this->request->input('json_decode');
  100.         $username = $data["username"];
  101.         $password = $data["password"];
  102.         if(isset($username) && isset($password)){
  103.             if(!empty($username) && !empty($password))
  104.             {
  105.                 $user = $this->User->getAllFromUser($username);
  106.                 if($user['password'] == $password){
  107.                     unset($user['password']);
  108.                    
  109.                     $this->start($username, $password);
  110.                     $rank = $user['rank'];
  111.                     switch($rank){
  112.                         case 1:{
  113.                           $user['rank'] = "Membre";
  114.                           break;
  115.                         }
  116.                         case 2:{
  117.                           $user['rank'] = "Modérateur";
  118.                           break;
  119.                         }
  120.                         case 3:{
  121.                           $user['rank'] = "Administrateur";
  122.                           break;
  123.                         }
  124.                         case 4:{
  125.                           $user['rank'] = "Administrateur";
  126.                           break;
  127.                         }
  128.                         default:{
  129.                           $user['rank'] = "not_found";
  130.                           break;
  131.                         }
  132.                     }
  133.                     $conditions = array("Rank.rank_id"  => array($rank));
  134.                     $rank_found = $this->Rank->find('first', array('conditions' => $conditions));
  135.                     if(!empty($rank_found) && $user['rank'] == "not_found"){
  136.                         $user['rank'] = $rank_found['Rank']['name'];
  137.                     }else if(empty($rank_found) && $user['rank'] == "not_found"){
  138.                         $user['rank'] = "Inconnus";
  139.                     }
  140.                     echo json_encode($user);
  141.                 }else{
  142.                     $this->errCreditentialsInvalid();
  143.                 }
  144.             }else{
  145.                 echo 'Empty Get';
  146.             }
  147.         }else{
  148.             echo 'Error Set';
  149.         }
  150.         exit;
  151.     }else{
  152.         $this->errorPost();
  153.     }
  154.     }
  155.  
  156.  
  157.  
  158.     public function refresh()
  159.     {
  160.  
  161.     }
  162.  
  163.  
  164.     public function validate()
  165.     {
  166.  
  167.     }
  168.  
  169.     public function invalidate()
  170.     {
  171.  
  172.     }
  173.  
  174.     public function logout()
  175.     {
  176.  
  177.     }
  178.  
  179.  
  180.     //Useless
  181.     public function getDataIngame()
  182.     {
  183.         $this->loadModel('User');
  184.         $this->loadModel('Auth.Rank');
  185.         $accessToken = $this->params['url']['accessToken'];
  186.         $conditions = array("User.auth-accessToken"  => array($accessToken));
  187.         $userFound = $this->User->find('first', array('conditions' => $conditions));
  188.         unset($userFound['User']['password']);
  189.         $rank = $userFound['User']['rank'];
  190.         switch($rank){
  191.             case 1:{
  192.               $userFound['User']['rank'] = "Membre";
  193.               break;
  194.             }
  195.             case 2:{
  196.               $userFound['User']['rank'] = "Modérateur";
  197.               break;
  198.             }
  199.             case 3:{
  200.               $userFound['User']['rank'] = "Administrateur";
  201.               break;
  202.             }
  203.             case 4:{
  204.               $userFound['User']['rank'] = "Administrateur";
  205.               break;
  206.             }
  207.             default:{
  208.               $userFound['User']['rank'] = "not_found";
  209.               break;
  210.             }
  211.         }
  212.         $conditions = array("Rank.rank_id"  => array($rank));
  213.         $rank_found = $this->Rank->find('first', array('conditions' => $conditions));
  214.         if(!empty($rank_found) && $userFound['User']['rank'] == "not_found"){
  215.             $userFound['User']['rank'] = $rank_found['Rank']['name'];
  216.         }else if(empty($rank_found) && $userFound['User']['rank'] == "not_found"){
  217.             $userFound['User']['rank'] = "Inconnus";
  218.         }
  219.         echo json_encode($userFound['User']);
  220.         exit;
  221.     }
  222.  
  223.  
  224. }

Reply to "Untitled"

Here you can reply to the paste above

captcha