Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use App\Http\Requests\EditUserRequest;
- use App\Http\Requests;
- use Illuminate\Http\Request;
- use App\User;
- use App\Models\Group;
- use Auth;
- use Illuminate\Support\Facades\Password;
- use Illuminate\Mail\Message;
- use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
- class UsersController extends Controller
- {
- /**
- * Create a new controller instance.
- *
- * @return void
- */
- public function __construct()
- {
- $this->middleware('auth');
- $this->middleware('users_permission_validate');
- }
- /**
- * Show the application dashboard.
- *
- * @return \Illuminate\Http\Response
- */
- public function index()
- {
- return view('users.index', [
- 'users' => User::where('status', '!=', 'deleted')->get()
- ]);
- }
- public function show($id, $status = null) {
- if(User::findOrFail($id)->status == 'deleted') {
- throw new NotFoundHttpException;
- }
- return view('users.show', [
- 'user' => User::findOrFail($id),
- 'group' => Group::lists('name','id_group'),
- 'status' => $status
- ]);
- }
- public function edit(EditUserRequest $request) {
- $user = User::findOrFail($request['id']);
- $saved = $user->update([
- 'name' => $request['name'],
- 'email' => $request['email'],
- 'id_group' => $request['id_group']
- ]);
- if($request['phone'] != 0) {
- $user->phone = $request['phone'];
- $user->save();
- }
- if ($saved) {
- $status = "Edycja zakończona powodzeniem";
- }
- return redirect()->route('users.show', [$user->id, $status]);
- }
- protected function create() {
- return view('users.create', [
- 'groups' => Group::lists('name', 'id_group')->toArray()
- ]);
- }
- /**
- * Create a new user instance after a valid registration.
- *
- * @param array $data
- * @return User
- */
- protected function store(Request $request) {
- $this->validate($request, [
- 'name' => 'required|max:255|min:3',
- 'email' => 'required|email|max:255|unique:users',
- 'id_group' => 'required|exists:group,id_group',
- 'phone' => 'sometimes|digits:9'
- ]);
- // Generacja losowego hasła
- $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $charactersLength = strlen($characters);
- $password = '';
- for ($i = 0; $i < 9; $i++) {
- $password .= $characters[rand(0, $charactersLength - 1)];
- }
- $user = User::create([
- 'name' => $request['name'],
- 'email' => $request['email'],
- 'id_group' => $request['id_group'],
- 'password' => bcrypt($password)
- ]);
- if($request['phone'] != 0) {
- $user->phone = $request['phone'];
- $user->save();
- }
- Password::sendResetLink(["email" =>$user->email], function (Message $message) {
- $message->subject("Aktywacja konta - Panel mPotwór");
- });
- return redirect()->route('users.index');
- }
- public function change_status(Request $request) {
- $this->validate($request,[
- 'status' => 'required|in:active,deleted,blocked'
- ]);
- $status = $request['status'];
- $user = User::findOrFail($request["id"]);
- if($status == 'active') {
- $saved = $user->unblock();
- }
- elseif($status == 'deleted') {
- $saved = $user->hash_credentials();
- }
- {
- $saved = $user->update(['status' => $status]);
- $user->save();
- }
- if ($saved) {
- $status = \Lang::get('main.success');
- $messages = "Status użytkownika został zmieniony na " . $user->status;
- $new_status = $user->status;
- } else {
- $status = \Lang::get('main.failure');
- $messages = \Lang::get('main.failed_change_status');
- $new_status = $user->status;
- }
- return response()->json(['status' => $status, 'messages' => $messages, 'new_status' => $new_status]);
- }
- protected function password_reset(Request $request) {
- $this->validate($request,[
- 'id' => 'required|exists:users,id'
- ]);
- $user = User::findOrFail($request['id']);
- Password::sendResetLink(["email" => $user->email], function (Message $message) {
- $message->subject("Aktywacja konta - Panel mPotwór");
- });
- $status = \Lang::get('main.success');
- $messages = "Link aktywacyjny został wysłany na adres " . $user->email;
- return response()->json(['status' => $status, 'messages' => $messages]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement