Advertisement
Guest User

Untitled

a guest
Sep 15th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.92 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\Http\Requests\EditUserRequest;
  6. use App\Http\Requests;
  7. use Illuminate\Http\Request;
  8. use App\User;
  9. use App\Models\Group;
  10. use Auth;
  11. use Illuminate\Support\Facades\Password;
  12. use Illuminate\Mail\Message;
  13. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  14.  
  15. class UsersController extends Controller
  16. {
  17.     /**
  18.      * Create a new controller instance.
  19.      *
  20.      * @return void
  21.      */
  22.     public function __construct()
  23.     {
  24.         $this->middleware('auth');
  25.         $this->middleware('users_permission_validate');
  26.     }
  27.  
  28.     /**
  29.      * Show the application dashboard.
  30.      *
  31.      * @return \Illuminate\Http\Response
  32.      */
  33.     public function index()
  34.     {
  35.         return view('users.index', [
  36.             'users' => User::where('status', '!=', 'deleted')->get()
  37.     ]);
  38.     }
  39.  
  40.     public function show($id, $status = null) {
  41.         if(User::findOrFail($id)->status == 'deleted') {
  42.             throw new NotFoundHttpException;
  43.         }
  44.  
  45.         return view('users.show', [
  46.             'user' => User::findOrFail($id),
  47.             'group' => Group::lists('name','id_group'),
  48.             'status' => $status
  49.         ]);
  50.     }
  51.  
  52.     public function edit(EditUserRequest $request) {
  53.  
  54.         $user = User::findOrFail($request['id']);
  55.  
  56.         $saved = $user->update([
  57.             'name' => $request['name'],
  58.             'email' => $request['email'],
  59.             'id_group' => $request['id_group']
  60.         ]);
  61.  
  62.         if($request['phone'] != 0) {
  63.             $user->phone = $request['phone'];
  64.             $user->save();
  65.         }
  66.  
  67.         if ($saved) {
  68.             $status = "Edycja zakończona powodzeniem";
  69.         }
  70.  
  71.  
  72.         return redirect()->route('users.show', [$user->id, $status]);
  73.     }
  74.  
  75.     protected function create() {
  76.         return view('users.create', [
  77.             'groups' => Group::lists('name', 'id_group')->toArray()
  78.         ]);
  79.     }
  80.  
  81.     /**
  82.      * Create a new user instance after a valid registration.
  83.      *
  84.      * @param  array  $data
  85.      * @return User
  86.      */
  87.     protected function store(Request $request) {
  88.         $this->validate($request, [
  89.             'name' => 'required|max:255|min:3',
  90.             'email' => 'required|email|max:255|unique:users',
  91.             'id_group' => 'required|exists:group,id_group',
  92.             'phone' => 'sometimes|digits:9'
  93.         ]);
  94.  
  95.         // Generacja losowego hasła
  96.         $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  97.         $charactersLength = strlen($characters);
  98.         $password = '';
  99.         for ($i = 0; $i < 9; $i++) {
  100.             $password .= $characters[rand(0, $charactersLength - 1)];
  101.         }
  102.  
  103.         $user = User::create([
  104.             'name' => $request['name'],
  105.             'email' => $request['email'],
  106.             'id_group' => $request['id_group'],
  107.             'password' => bcrypt($password)
  108.         ]);
  109.  
  110.         if($request['phone'] != 0) {
  111.             $user->phone = $request['phone'];
  112.             $user->save();
  113.         }
  114.  
  115.         Password::sendResetLink(["email" =>$user->email], function (Message $message) {
  116.             $message->subject("Aktywacja konta - Panel mPotwór");
  117.         });
  118.         return redirect()->route('users.index');
  119.     }
  120.  
  121.     public function change_status(Request $request) {
  122.         $this->validate($request,[
  123.             'status' => 'required|in:active,deleted,blocked'
  124.         ]);
  125.         $status = $request['status'];
  126.         $user = User::findOrFail($request["id"]);
  127.  
  128.         if($status == 'active') {
  129.             $saved = $user->unblock();
  130.         }
  131.         elseif($status == 'deleted') {
  132.             $saved = $user->hash_credentials();
  133.         }
  134.  
  135.         {
  136.             $saved = $user->update(['status' => $status]);
  137.             $user->save();
  138.         }
  139.  
  140.         if ($saved) {
  141.             $status = \Lang::get('main.success');
  142.             $messages = "Status użytkownika został zmieniony na " . $user->status;
  143.             $new_status = $user->status;
  144.         } else {
  145.             $status = \Lang::get('main.failure');
  146.             $messages = \Lang::get('main.failed_change_status');
  147.             $new_status = $user->status;
  148.         }
  149.  
  150.         return response()->json(['status' => $status, 'messages' => $messages, 'new_status' => $new_status]);
  151.     }
  152.  
  153.     protected function password_reset(Request $request) {
  154.         $this->validate($request,[
  155.             'id' => 'required|exists:users,id'
  156.         ]);
  157.         $user = User::findOrFail($request['id']);
  158.  
  159.         Password::sendResetLink(["email" => $user->email], function (Message $message) {
  160.             $message->subject("Aktywacja konta - Panel mPotwór");
  161.         });
  162.  
  163.         $status = \Lang::get('main.success');
  164.         $messages = "Link aktywacyjny został wysłany na adres " . $user->email;
  165.  
  166.         return response()->json(['status' => $status, 'messages' => $messages]);
  167.     }
  168.  
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement