Файл: src/app/Http/Controllers/UsersController.php
Строк: 225
<?php
namespace AppHttpControllers;
use AppHttpControllersController;
use IlluminateSupportFacadesInput;
use Auth;
use Validator;
use Hash;
use AppModelsUsers;
use AppModelsSettings;
use IlluminateSupportStr;
use Mail;
class UsersController extends Controller{
public function getLogin(){
return view("users.login");
}
public function postLogin(){
$Inputs = Input::only("Username","Password","RememberMe");
$Credidentals = array(
"Username"=>$Inputs["Username"],
"password"=>$Inputs["Password"]
);
$RememberMe = (bool) $Inputs["RememberMe"];
if (Auth::attempt($Credidentals, $RememberMe)) {
return redirect()->route("get.dashboard");
}
return redirect()->route("get.login")->with("ErrorMessage",trans('messages.user_login_failure'));
}
public function getForgotPassword(){
return view("users.forgot_password");
}
public function postForgotPassword(){
$Settings = Settings::findOrFail(1);
$Inputs = Input::only("Username");
$Validator = Validator::make($Inputs,[
"Username" => "required|exists:Users,Username"
]);
if ($Validator->fails()) {
return redirect()->route("get.forgot_password")->with("ErrorMessage",trans('messages.forgotpassword_login_failure'));
}
$User = Users::where("Username",$Inputs["Username"])->first();
Mail::send('emails.reminder', ['User' => $User], function ($Mail) use ($User) {
$Mail->from($Settings->Email,"Cup Invoice");
$Mail->to($User->Email, $User->Name)->subject(trans('email.label_reset_subject'));
});
return redirect()->route("get.forgot_password")->with("SuccessMessage",trans('messages.forgotpassword_login_success'));
}
public function getResetPassword($ActivationToken,$Username){
$User = Users::where("ActivationToken",$ActivationToken)->where("Username",$Username)->first();
if (!$User) {
return redirect()->route('get.login');
}
return view("users.reset_password");
}
public function postResetPassword($ActivationToken,$Username){
$Inputs = Input::only("Password","PasswordConfirmation");
$Inputs["ActivationToken"] = $ActivationToken;
$Inputs["Username"] = $Username;
$Validator = Validator::make($Inputs,[
"Username" => "required|exists:Users,Username",
"ActivationToken" => "required|exists:Users,ActivationToken",
"Password" => "required|min:5|max:10",
"PasswordConfirmation" => "required|min:5|max:10|same:Password"
]);
if ($Validator->fails()) {
return redirect()->route("get.reset_password",[$ActivationToken,$Username])->withErrors($Validator)->with("ErrorMessage",trans('messages.resetpassword_login_failure'));
}
$User = Users::where("Username","=",$Username)->first();
$Payload = array(
"ActivationToken" => Str::random(60),
"Password" => Hash::make($Inputs['Password'])
);
$User->update($Payload);
return redirect()->route("get.login")->with("SuccessMessage",trans('messages.resetpassword_login_success'));
}
public function getLogout(){
Auth::logout();
return redirect()->route("get.login")->with("SuccessMessage",trans('messages.user_logout_success'));
}
public function getUsers(){
$Users = Users::orderBy("UserID","DESC")->paginate(10);
return view("users.index",compact('Users'));
}
public function getAdd(){
return view('users.add');
}
public function postAdd(){
$Inputs = Input::only("Username","Email","Name","Surname","Password","Repassword");
$Validator = Validator::make($Inputs,array(
"Username" => "required|min:3|max:45|alpha_num|unique:Users,Username",
"Password" => "min:5|max:45",
"Email" => "required|email|min:3|max:45|unique:Users,Email",
"Name" => "required|min:3|max:45",
"Surname" => "required|min:3|max:45"
));
if ($Validator->fails()) {
return redirect()->route('users::add')->withInput()->withErrors($Validator)->with("ErrorMessage",trans('messages.users_create_failure'));
}
if ($Inputs['Password']=="") {
$Inputs["Password"] = str_random(8);
}
$PasswordVisible = $Inputs["Password"];
$Inputs["Password"] = Hash::make($Inputs["Password"]);
Mail::send('emails.new_user', ['Password'=>$PasswordVisible,'User'=>$Inputs], function ($m) use ($Inputs) {
$Settings = Settings::findOrFail(1);
$m->from($Settings->Email, 'Cup Invoice');
$m->to($Inputs["Email"], $Inputs["Name"].' '.$Inputs["Surname"])->subject('User Registration');
});
Users::create($Inputs);
return redirect()->route('users::list')->with("SuccessMessage",trans('messages.users_create_success'));
}
public function getUpdate($UserID){
$User = Users::findOrFail($UserID);
return view('users.edit',compact('User'));
}
public function postUpdate($UserID){
$Inputs = Input::only("Username","Email","Name","Surname","Password","Repassword");
$Validator = Validator::make($Inputs,array(
"Username" => "required|min:3|max:45|alpha_num|unique:Users,Username,".$Inputs["Username"].",Username",
"Password" => "min:5|max:45",
"Repassword" => "",
"Email" => "required|email|min:3|max:45|unique:Users,Email,".$Inputs["Email"].",Email",
"Name" => "required|min:3|max:45",
"Surname" => "required|min:3|max:45"
));
if ($Validator->fails()) {
return redirect()->route('users::edit',$UserID)->withInput()->withErrors($Validator)->with("ErrorMessage",trans('messages.users_update_failure'));
}
$User = Users::findOrFail($UserID);
$User->update($Inputs);
return redirect()->route('users::list')->with("SuccessMessage",trans('messages.users_update_success'));
}
public function getDelete($UserID){
$User = Users::findOrFail($UserID);
$User->delete();
return redirect()->route("users::list")->with("SuccessMessage",trans('messages.users_delete_success'));
}
}
?>