v1.1.0 - Users can now sign up (Automatically gets 'Bruger' role)

This commit is contained in:
Anders 2020-09-10 10:25:27 +02:00
parent 3b86e29c00
commit e483400d82
6 changed files with 97 additions and 30 deletions

View File

@ -24,8 +24,8 @@ class UserController extends Controller
{ {
$this->middleware([ "auth" ])->only(["accountupdate", "accountedit", "accounteditpass", "account", "logout"]); $this->middleware([ "auth" ])->only(["accountupdate", "accountedit", "accounteditpass", "account", "logout"]);
$this->middleware([ "guest" ])->only(["login", "signup"]); $this->middleware([ "guest" ])->only(["login", "signup", "signupStore"]);
$this->middleware([ "lang" ])->except(["login", "showLogin", "showForgot", "forgot","signup"]); $this->middleware([ "lang" ])->except(["login", "showLogin", "showForgot", "forgot", "signup", "nameCheck", "signupStore"]);
$this->middleware([ "check.auth:user.show" ])->only("show", "index"); $this->middleware([ "check.auth:user.show" ])->only("show", "index");
$this->middleware([ "check.auth:user.create" ])->only("create"); $this->middleware([ "check.auth:user.create" ])->only("create");
@ -645,10 +645,27 @@ class UserController extends Controller
} }
} }
public function signup(){ public function signup(){
//return redirect()->route("users.signup"); //return redirect()->route("users.signup");
return Response::detect("users.signup"); return Response::detect("users.signup");
} }
public function signupStore(Request $request){
$data = $request->validate([
"name_first" => "required|max:255",
"name_last" => "required|max:255",
"email" => "required",
"password" => "required|max:60",
"phone" => "required|max:8|min:8",
]);
$user = new User($data);
$user->assignRole("Bruger");
$user->save();
return redirect()->route('users.login');
}
} }

View File

@ -21,7 +21,7 @@
<label hidden id="erroremail">Der findes allerede en bruger med denne email!</label> <label hidden id="erroremail">Der findes allerede en bruger med denne email!</label>
<input type="email" name="email" id="email" placeholder="x@y.z" required> <input type="email" name="email" id="email" placeholder="x@y.z" required>
<label for="password1">Adgangskode:</label> <label for="password1">Adgangskode:</label>
<label hidden id="errornotsamepass" for="errormesseages" >Der stod ikke det samme i `Adgangskode` & `Bekræft Adgangskode`!</label> <label hidden id="errornotsamepass" for="errormesseages" >Der stod ikke det samme i Adgangskode & Bekræft Adgangskode!</label>
<div class="input-group text-left"> <div class="input-group text-left">
<input type="password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Adgangskoden skal indeholde mindst et tal, et lille bogstav, et stort bogstav og have en minimumslængde på 8 karakterer" class="form-control" name="password" id="password1" placeholder="******" required> <input type="password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Adgangskoden skal indeholde mindst et tal, et lille bogstav, et stort bogstav og have en minimumslængde på 8 karakterer" class="form-control" name="password" id="password1" placeholder="******" required>
<span class="fa fa-fw fa-eye field-icon toggle-password" id="fa-new" onclick="show('password1', 'fa-new')"></span> <span class="fa fa-fw fa-eye field-icon toggle-password" id="fa-new" onclick="show('password1', 'fa-new')"></span>

View File

@ -7,7 +7,7 @@
<main style="justify-content: unset"> <main style="justify-content: unset">
<h1 class="text-center sde-blue mb-0" style="margin-bottom: 2rem">{{ __('msg.omkring') }}</h1> <h1 class="text-center sde-blue mb-0" style="margin-bottom: 2rem">{{ __('msg.omkring') }}</h1>
<h4 class="mb-0 mt-1">Version:</h4> <h4 class="mb-0 mt-1">Version:</h4>
<p>1.0.0-c</p> <p>1.0</p>
<h4 class="mb-0 mt-1">{{__("msg.omappen")}}:</h4> <h4 class="mb-0 mt-1">{{__("msg.omappen")}}:</h4>
<p>{{__("msg.infoomappen")}}</p> <p>{{__("msg.infoomappen")}}</p>
<!--<h4 class="mb-1 mt-1">{{__("msg.programmedby")}}:</h4> <!--<h4 class="mb-1 mt-1">{{__("msg.programmedby")}}:</h4>

View File

@ -26,6 +26,7 @@
{!! session()->get('error#wrongcredentials') !!} {!! session()->get('error#wrongcredentials') !!}
{!! session()->get('success#loggedout') !!} {!! session()->get('success#loggedout') !!}
<input class="btn btn-dark" type="submit" value="Sign in"> <input class="btn btn-dark" type="submit" value="Sign in">
<button type="button" class="btn btn-dark" onclick="location.href = '{{ route("users.signup") }}'" style="line-height: 2rem;">Register</button>
</form> </form>
<a class="text-white text-center" href="{{ route('users.show-forgot') }}">Forgot password?</a> <a class="text-white text-center" href="{{ route('users.show-forgot') }}">Forgot password?</a>
</main> </main>

View File

@ -5,51 +5,99 @@
@endsection @endsection
@section("content") @section("content")
<style>
img{
margin-top: 30%;
}
</style>
<main style="background-color: #00788a; height: 100%;"> <main style="background-color: #00788a; height: 100%;">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div class="brand"> <div class="brand">
<img src="{{URL::asset('/images/logos/Logo-hvid.svg')}}" alt="Syddansk Erhvervsskole"> <img src="{{URL::asset('/images/logos/Logo-hvid.svg')}}" alt="Syddansk Erhvervsskole">
</div> </div>
<form action="{{ route("users.store") }}" method="post"> <form action="{{ route("users.signupStore") }}" method="post" onsubmit="return checkInputs()">
@csrf @csrf
<label hidden id="erroremail">E-mail already exists</label>
<label hidden id="errornotsamepass" for="errormesseages">Password dosen't match</label>
<label hidden id="errorphone">Phone number already in use</label>
<input class="appinput" type="text" name="name_first" placeholder="Firstname" required> <input class="appinput" type="text" name="name_first" placeholder="Firstname" required>
<input class="appinput" type="text" name="name_last" placeholder="Lastname" required> <input class="appinput" type="text" name="name_last" placeholder="Lastname" required>
<input class="appinput" type="email" name="email" placeholder="E-mail" required> <input class="appinput" type="email" id="email" name="email" placeholder="E-mail" required>
<input class="appinput" type="password" name="password" id="password1" placeholder="Password" required> <input class="appinput" type="password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title="Must contain at least one number and one uppercase and lowercase letter, and at least 8 or more characters" name="password" id="password1" placeholder="Password" required>
<label hidden id="errornotsamepass" for="errormesseages">Password dosen't match</label>
<input class="appinput" type="password" name="password2" id="password2" placeholder="Confirm password" required> <input class="appinput" type="password" name="password2" id="password2" placeholder="Confirm password" required>
<input class="appinput" type="tel" name="phone" placeholder="Phone number" required> <input class="appinput" type="tel" id="phone" name="phone" placeholder="Phone number" pattern="[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{2}" required style="margin-bottom: 1.5rem;">
<label style="color: white">Education end date:</label> <!--<label style="color: white">Education end date:</label>
<input class="appinput" type="date" name="eduenddate" placeholder="Education end date" required> <input class="appinput" type="date" name="eduenddate" placeholder="Education end date" required>-->
<!--Koncept--> <!--Koncept-->
<label style="color: white" for="edu">Education:</label> <!--<label style="color: white" for="edu">Education:</label>
<select style="color: white" name="edu" id="edu"> <select style="color: white" name="edu" id="edu">
<option value="datapro">Datatekniker med programmering</option> <option value="datapro">Datatekniker med programmering</option>
<option value="datainf">Datatekniker med infrastruktur</option> <option value="datainf">Datatekniker med infrastruktur</option>
<option value="dataits">Datatekniker med IT-Support</option> <option value="dataits">Datatekniker med IT-Support</option>-->
<!--<option value="saab">Murer</option> <!--<option value="saab">Murer</option>
<option value="opel">Tømmer</option> <option value="opel">Tømmer</option>
<option value="audi">Maler</option>--> <option value="audi">Maler</option>-->
</select> <!--</select>-->
<!--Koncept--> <!--Koncept-->
<input class="btn btn-dark" type="submit" id="disable" value="Sign up"> <input class="btn btn-dark" type="submit" id="disable" value="Sign up">
<input onclick="window.history.back()" class="btn btn-dark text-center " value="Back">
</form> </form>
<button onclick="window.history.back()" class="btn btn-dark" >Back</button>
</main> </main>
<script> <script>
$(function() {
$('form').areYouSure(
{
message: 'It looks like you have been editing something. '
+ 'If you leave before saving, your changes will be lost.'
}
);
});
function checkInputs() {
var save = true;
$mail = $('#email').val();
$phone = $('#phone').val();
$.ajax({
'async': false,
type: 'get',
url: '{{route('users.nameCheck')}}',
data: {'mailCheck':$mail, 'phoneCheck':$phone},
success:function (data) {
if (data == 'both') {
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');
save = false;
} else if(data == 'email'){
$("#errorphone").hide();
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
save = false;
} else if (data == 'phone') {
$("#erroremail").hide();
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');
save = false;
} else {
$("#errorphone").hide();
$("#erroremail").hide();
}
},
error:function (data) {
console.log(data);
}
});
// If passwords is not the same. Then show an error message and make save false
if ($('#password1').val() != $('#password2').val()) { if ($('#password1').val() != $('#password2').val()) {
$("#errornotsamepass").show(100); $("#errornotsamepass").show(100);
$("#errornotsamepass").css('color', 'red'); $("#errornotsamepass").css('color', 'red');
$("#disable").prop('disabled', true); save = false;
} else } else
$("#errornotsamepass").hide(); $("#errornotsamepass").hide();
if (save)
return true;
else
return false;
}
</script> </script>
@endsection @endsection

View File

@ -41,7 +41,8 @@ Route::post("/events/cancelsignup", "UserEventController@createajaxcancel")->nam
Route::post("/account/cancelmailwants", "UserController@createajaxcancel")->name("users.createajaxcancel"); Route::post("/account/cancelmailwants", "UserController@createajaxcancel")->name("users.createajaxcancel");
Route::delete("/notifications/delete", "EventController@deleteNotifications")->name("notifications.delete"); Route::delete("/notifications/delete", "EventController@deleteNotifications")->name("notifications.delete");
Route::post("/feedbacks/store", "FeedbackController@storeajax")->name("feedbacks.storeajax"); Route::post("/feedbacks/store", "FeedbackController@storeajax")->name("feedbacks.storeajax");
//Route::get("/signup", "UserController@signup")->name("users.signup"); Route::get("/signup", "UserController@signup")->name("users.signup");
Route::post("/signupStore", "UserController@signupStore")->name("users.signupStore");
//Search/Filter //Search/Filter
Route::get("/contactsapi", "ContactController@search")->name("contacts.search"); Route::get("/contactsapi", "ContactController@search")->name("contacts.search");