update
parent
4f8ace8130
commit
bf16e26032
|
|
@ -11,17 +11,95 @@ use App\Models\Master\Sekolah;
|
|||
use App\Models\Penilaian;
|
||||
use App\Models\Kuesioner;
|
||||
use App\Models\User;
|
||||
use Hash;
|
||||
|
||||
class AjaxController extends Controller
|
||||
{
|
||||
function authApi() {
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => 'http://10.50.50.74/api/login',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => '',
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => 'POST',
|
||||
CURLOPT_POSTFIELDS =>'{
|
||||
"email" : "ilhamwara@gmail.com",
|
||||
"password": "@Dinaslhdki123"
|
||||
}',
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
'Content-Type: application/json'
|
||||
),
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
return $response;
|
||||
}
|
||||
function sendEmail($to,$subject,$name,$kode,$token) {
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => 'http://10.50.50.74/api/email/send',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_ENCODING => '',
|
||||
CURLOPT_MAXREDIRS => 10,
|
||||
CURLOPT_TIMEOUT => 0,
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||||
CURLOPT_CUSTOMREQUEST => 'POST',
|
||||
CURLOPT_POSTFIELDS =>'{
|
||||
"ApiKey" : "sk-25e88e0dfa73013ff5529d6c5e00462b",
|
||||
"To" : "'.$to.'",
|
||||
"Subject" : "'.$subject.'",
|
||||
"Html": "<!DOCTYPE html><html lang=\'id\'><head><meta charset=\'UTF-8\' /><meta name=\'viewport\' content=\'width=device-width, initial-scale=1.0\' /><title>SIDIA Jakarta</title><style>body{background-color:#f6f7fb;margin:0;padding:0;font-family:Arial,sans-serif;color:#333}.container{max-width:600px;margin:40px auto;background-color:#fff;border:1px solid #e5e5e5;border-radius:8px;overflow:hidden}.header{text-align:center;padding:30px 20px 10px 20px;border-bottom:1px solid #eee}.header img{width:90px;height:auto}.app-name{font-weight:bold;font-size:20px;margin-top:8px;color:#222}.body{padding:30px 40px}.body p{line-height:1.6;font-size:15px;margin:0 0 15px 0}.code-box{background-color:#f3f3f3;text-align:center;font-size:32px;font-weight:bold;padding:15px 0;border-radius:5px;letter-spacing:2px;margin:20px 0}.footer{font-size:13px;color:#888;text-align:center;padding:15px 20px 25px 20px;background-color:#fafafa;border-top:1px solid #eee}a{color:#0078d7;text-decoration:none}</style></head><body><div class=\'container\'><div class=\'header\'><img src=\'https://adiwiyata.dinaslhdki.id/assets/logo-dinas.ico\' alt=\'SIDIA Jakarta Logo\'/><div class=\'app-name\'>SIDIA Jakarta</div></div><div class=\'body\'><p>Hai <b>'.@$name.'</b>,</p><p>Gunakan kode di bawah ini untuk mereset kata sandi akun Anda.</p><div class=\'code-box\'>'.$kode.'</div><p>Kode ini akan kedaluwarsa dalam <b>15 menit</b>.</p><p>Tidak meminta reset kata sandi ini? Abaikan email ini atau <a href=\''.url('/#helpdesk').'\'>hubungi kami</a>.</p></div><div class=\'footer\'>© '.date('Y').' SIDIA Jakarta. Semua hak dilindungi.</div></div></body></html>"
|
||||
}',
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
'Content-Type: application/json',
|
||||
'Authorization: '.$token
|
||||
),
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
}
|
||||
function sendCode(Request $request) {
|
||||
// $request->validate(['email' => 'required|email']);
|
||||
if($request->email){
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if(@$request->email){
|
||||
|
||||
if(@$request->password){
|
||||
$user = User::where('email', $request->email)->where('code_change_password', $request->kode)->first();
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->save();
|
||||
|
||||
return response()->json(['status' => true,'code' => false,'password' => false,'redirect' => true]);
|
||||
|
||||
}elseif(@$request->kode){
|
||||
$user = User::where('code_change_password', $request->kode)->first();
|
||||
if(@$user){
|
||||
return response()->json(['status' => true,'code' => false,'password' => true]);
|
||||
}else{
|
||||
return response()->json(['status' => false,'message' => 'Kode Tidak Valid']);
|
||||
}
|
||||
}else{
|
||||
$user = User::where('email', $request->email)->first();
|
||||
// dd();
|
||||
if(@$user){
|
||||
$response = json_decode($this->authApi());
|
||||
// dd();
|
||||
|
||||
$user->code_change_password = \Str::random(5);
|
||||
$user->save();
|
||||
return response()->json(['status' => true,'code' => true]);
|
||||
|
||||
//send email
|
||||
$this->sendEmail($user->email,'Lupa Password',$user->name,$user->code_change_password,$response->data->token);
|
||||
|
||||
return response()->json(['status' => true,'code' => true,'password' => false]);
|
||||
}else{
|
||||
return response()->json(['status' => false,'message' => 'Email Tidak Valid']);
|
||||
}
|
||||
|
|
@ -30,6 +108,8 @@ class AjaxController extends Controller
|
|||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function checkEmail(Request $request){
|
||||
$request->validate(['email' => 'required|email']);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@
|
|||
<button class="btn btn-default waves-effect waves-themed" type="button" id="togglePassword"><i class="fal fa-envelope"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group divKode mb-2 d-none">
|
||||
<div class="alert alert-info">
|
||||
Silahkan cek email anda dan masukan kode
|
||||
|
|
@ -64,17 +65,19 @@
|
|||
</div>
|
||||
<div class="form-group divKode d-none">
|
||||
<label class="form-label">Kode</label>
|
||||
<input type="text" required name="kode" class="form-control" placeholder="Masukan Kode Anda" id="kode">
|
||||
<input type="text" required name="kode" disabled class="form-control" placeholder="Masukan Kode Anda" id="kode">
|
||||
</div>
|
||||
<div class="form-group divPassword d-none">
|
||||
<label class="form-label">Kata Sandi</label>
|
||||
<label class="form-label">Kata Sandi Baru</label>
|
||||
<div class="input-group">
|
||||
<input type="password" required id="password" name="password" class="form-control" placeholder="Masukan Kata Sandi">
|
||||
<input type="password" required id="password" disabled name="password" class="form-control" placeholder="Masukan Kata Sandi">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-default waves-effect waves-themed" type="button" id="togglePassword"><i class="fal fa-eye"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="emailFeedback" class="mt-2 text-sm"></div>
|
||||
<div class="help-block">
|
||||
Kata Sandi harus mengandung Minimal 8 karakter, maksimal 15 karakter, <br>setidaknya 1 huruf kecil dan huruf besar, angka dan simbol
|
||||
</div>
|
||||
</div>
|
||||
<div class="row no-gutters">
|
||||
<div class="col-lg-12 pr-lg-1 my-2">
|
||||
|
|
@ -153,26 +156,41 @@
|
|||
$('.btnProses').on('click',function(){
|
||||
let base_url = "{{ url('/') }}";
|
||||
let email = $('#email').val();
|
||||
let kode = $('#kode').val();
|
||||
let password = $('#password').val();
|
||||
$.ajax({
|
||||
url: base_url+'/sendCode',
|
||||
method: 'POST',
|
||||
data: {
|
||||
email: email,
|
||||
kode: kode,
|
||||
password:password,
|
||||
_token: $('meta[name="csrf-token"]').attr('content')
|
||||
},
|
||||
success: function(response) {
|
||||
if (response.status == true) {
|
||||
if(response.code == true){
|
||||
$('.divKode').removeClass('d-none');
|
||||
$('#kode').removeAttr('disabled');
|
||||
$('.divEmail').addClass('d-none');
|
||||
}
|
||||
|
||||
if(response.password == true){
|
||||
$('.divPassword').removeClass('d-none');
|
||||
$('#kode').removeAttr('disabled');
|
||||
$('#password').removeAttr('disabled');
|
||||
$('.divKode').addClass('d-none');
|
||||
$('.divEmail').addClass('d-none');
|
||||
}
|
||||
|
||||
if(response.redirect == true){
|
||||
toastr.success('Berhasil Update Password Baru', 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
||||
|
||||
setTimeout(function() {
|
||||
window.location.href = base_url+"/login";
|
||||
}, 3000);
|
||||
}
|
||||
|
||||
// toastr.success("Berhasil Request Ubah Kata Sandi", 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
||||
} else {
|
||||
toastr.error(response.message, 'Error!', {positionClass: 'toast-bottom-right', containerId: 'toast-bottom-right'});
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@
|
|||
<div class="container mx-auto p-12 md:py-12">
|
||||
<div class="flex flex-col md:flex-row items-center justify-between">
|
||||
<div class="flex flex-col gap-1">
|
||||
<h4 class="md:text-left text-center text-white">Ada Kendala Terkait Sekolah Adiwiyata ?</h4>
|
||||
<h4 class="md:text-left text-center text-white">Ada Kendala Terkait Sekolah Adiwiyata Jakarta ?</h4>
|
||||
<h4 class="md:text-left text-center text-3xl md:text-4xl font-extrabold text-white">Hubungi Helpdesk Kami</h4>
|
||||
</div>
|
||||
<div class="flex flex-col mt-5 md:mt-0 md:flex-row gap-2">
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>@yield('title',@$title) | Sekolah Adiwiyata DKI Jakarta</title>
|
||||
<title>@yield('title',@$title) | SIDIA Jakarta</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<meta name="keywords" content="Sekolah Adiwiyata" />
|
||||
|
|
@ -100,12 +100,12 @@
|
|||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<h5 class="text-white font-bold mb-0">Sistem Informasi Sekolah Adiwiyata</h5>
|
||||
<h5 class="text-white font-bold mb-0">Sistem Informasi Sekolah Adiwiyata Jakarta</h5>
|
||||
<span class="text-white text-xs">Dinas Lingkungan Hidup DKI Jakarta</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-white text-xs">© 2025 </span>
|
||||
<span class="text-white text-xs">© {{ date('Y') }} </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue