Guest User

Untitled

a guest
Jan 7th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.13 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Models;
  4. use Illuminate\Support\Facades\Log;
  5.  
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Auth\Authenticatable;
  8. use Illuminate\Auth\Passwords\CanResetPassword;
  9. use Illuminate\Foundation\Auth\Access\Authorizable;
  10. use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
  11. use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
  12. use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
  13. use SammyK\LaravelFacebookSdk\SyncableGraphNodeTrait as SyncableGraphNodeTrait;
  14. use Auth;
  15.  
  16. class User extends Model implements AuthenticatableContract,
  17.     AuthorizableContract,
  18.     CanResetPasswordContract
  19. {
  20.     use Authenticatable, Authorizable, CanResetPassword, SyncableGraphNodeTrait;
  21.  
  22.     protected $table = 'user';
  23.     protected $hidden = ['password', 'salt', 'token', 'remember_token'];
  24.     protected $fillable =  ['first_name', 'last_name', 'email', 'phone', 'video', 'is_teacher', 'updated_at'];
  25.    
  26.     public function posts() {
  27.         return $this->hasMany('App\Models\Post');
  28.     }
  29.    
  30.     public function considerPosts() {
  31.         return $this->belongsToMany('App\Models\Post', 'consider')->withTimestamps();
  32.     }
  33.    
  34.     public function favouritedPosts() {
  35.         return $this->belongsToMany('App\Models\Post', 'favourited_posts');
  36.     }
  37.    
  38.     public function favouritedUsers() {
  39.         return $this->belongsToMany('App\Models\User', 'favourited_users', 'user_id', 'favourite_user_id');
  40.     }
  41.     public function usermeta(){
  42.         return $this->hasMany('App\Models\UserMeta');
  43.     }    
  44.     public function vouchers() {
  45.         return $this->hasMany('App\Models\Voucher');
  46.     }
  47.    
  48.     public function getMetaAttribute(){
  49.         $data = array();
  50.         if(!empty($this->usermeta)){
  51.             foreach($this->usermeta as $meta){
  52.                 $data[$meta->key] = $meta->value;
  53.             }
  54.         }
  55.        
  56.          return $data;
  57.     }
  58.  
  59.    
  60.     public function getAvailabilityAttribute(){
  61.         $data = array();
  62.         if(isset($this->meta['availability']))
  63.             $data = explode('|',$this->meta['availability']);
  64.         return $data;
  65.  
  66.     }
  67.    
  68.     public static function getSaltByEmail($email){
  69.         if(Auth::check()){
  70.              return self::where('email', $email)->value('salt');
  71.         }else{
  72.             return false;
  73.         }
  74.        
  75.     }
  76.  
  77.     public static function noteUserLogin($user) {
  78. //        $user->last_login_at = new \DateTime();
  79.         $user->save();
  80.     }
  81.  
  82.     public static function _save($request, $id = false){
  83.         Log::debug("IT WAS HERE INIT");
  84.         if ($id) {
  85.             $user = self::find($id);
  86.  
  87.         } else {
  88.             $user = new User();
  89.         }
  90.         if ($request->email) {
  91.             $user->email = $request->email;
  92.         }
  93.         $user->first_name    = $request->first_name;
  94.         $user->last_name     = $request->last_name;
  95.          if ($request->hasFile('photo')) {
  96.                 $uploadDir = 'uploads';
  97.                 $file = $request->file('photo');                
  98.                 $basename = date('YmdHis');
  99.                 $ext = $file->getClientOriginalExtension();
  100.                 $photoName = $basename.'.'.$ext;
  101.                 $file->move($uploadDir, $photoName);                
  102.                 $photo = $uploadDir.'/'.$photoName;
  103.                 $user->image = $photo;
  104.          }
  105.          
  106.         if ($request->password) {
  107.             $user->salt     = uniqid(rand(), true);
  108.             $user->password = bcrypt($request->password . $user->salt);
  109.         }
  110.        
  111.         return $user->save();
  112.     }
  113.    
  114.    
  115.     public static function _save_teacher($request, $email = false){
  116.      
  117.       if(Auth::check()){
  118.          
  119.         $user = Auth::user();
  120.    
  121.       }else
  122.       {
  123.         $user = new User();
  124.         $user->email = $request->email;
  125.          
  126.       }
  127.        
  128.         $user->first_name    = $request->first_name;
  129.         $user->last_name     = $request->last_name;
  130.         $user->phone     = $request->phone;
  131.         $user->video     = $request->video;
  132.         $user->is_teacher     = 1;
  133.  
  134.         if ($request->password) {
  135.             $user->salt     = uniqid(rand(), true);
  136.             $user->password = bcrypt($request->password . $user->salt);
  137.         }
  138.  
  139.         return $user->save();
  140.     }
  141.  
  142.     public static function getUserbyEmail($email){
  143.         return  self::where('email',$email)->first();
  144.     }
  145.  
  146.     /**
  147.      * @param $password
  148.      * @param $user
  149.      */
  150.     public  static function changePass($password, $user){
  151.         $user->salt = uniqid(rand(), true);
  152.         $user->password = bcrypt($password.$user->salt);
  153.         $user->token = NULL;
  154.         $user->save();
  155.  
  156.     }
  157.     public static function checkToken($token){
  158.  
  159.         return self::where('token', $token)->first();
  160.     }
  161.  
  162.     public static  function generateToken($user){
  163.         $user->token = md5(microtime(true));
  164.         $user->save();
  165.         return $user->token;
  166.     }
  167.  
  168.     public static function getUsersExceptAdmin($admin){
  169.         $users = User::where('id', '!=', $admin)->where('status',1)->get();
  170.         return $users;
  171.     }
  172.    
  173.     public function renderLocation()
  174.     {        
  175.         if (!empty($this->city)) {          
  176.             $location = (empty($this->country)) ?
  177.                             $this->city :
  178.                             $this->city.', '.$this->country;
  179.         }
  180.         elseif (!empty($this->country)) {
  181.             $location = $this->country;
  182.         }
  183.         else {
  184.             $location = '';
  185.         }
  186.         return $location;
  187.     }
  188.    
  189.     public function getFullName()
  190.     {        
  191.         if (!empty($this->first_name)) {          
  192.             $fullname = (empty($this->last_name)) ?
  193.                             $this->first_name :
  194.                             $this->first_name.' '.$this->last_name;
  195.         }
  196.         elseif (!empty($this->last_name)) {
  197.             $fullname = $this->last_name;
  198.         }
  199.         else {
  200.             $fullname = '';
  201.         }
  202.         return $fullname;
  203.     }
  204.    
  205.     public function getImage()
  206.     {
  207.         return (!empty($this->image) && file_exists($this->image)) ? $this->image : 'images/avatar.png';
  208.     }
  209.  
  210.     public function getNameAttribute(){
  211.         return $this->first_name . ' ' . $this->last_name;
  212.     }
  213. }
Add Comment
Please, Sign In to add comment