<?php
namespace App\Http\Controllers;
use App\Mail\LupaEmail;
use App\Mail\SendEmail;
use App\Models\Input_data;
use App\Models\Instansi;
use App\Models\Master_input;
use App\Models\User;
use DateTime;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Symfony\Component\Console\Input\Input;
class AuthController extends Controller
{
// Login
public function login() {
return view('auth.login');
}
public function login_post(Request $request) {
$credentials = $request->validate([
'username' => ['required'],
'password' => ['required'],
], [
'username.required' => 'Username / Email Wajib Di Isi.',
'password.required' => 'Password Wajib Di Isi.',
]);
$remember = ($request->input('me')) ? true : false;
// dd($remember);
if(Auth::guard('web')->attempt($credentials, $remember)) {
if(Auth::user()->email_verified_at != null) {
$request->session()->regenerate();
if(Auth::user()->role == "User") {
return redirect('/master-input');
} else {
return redirect('/dashboard');
}
} else {
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/')->with('gagal', 'Mohon Maaf Akun anda belum diverifikasi, silahkan daftar lagi!');
}
} else {
$data = [
'email' => $request->input('username'),
'password' => $request->input('password'),
];
if(Auth::guard('web')->attempt($data, $remember)) {
if(Auth::user()->email_verified_at != null) {
$request->session()->regenerate();
if(Auth::user()->role == "User") {
return redirect('/master-input');
} else {
return redirect('/dashboard');
}
} else {
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/login')->with('gagal', 'Mohon Maaf Akun anda belum diverifikasi, silahkan daftar lagi!');
}
}
}
return back()->with('gagal', 'Username/Password Salah');
}
// Daftar
public function daftar() {
return view('auth.daftar');
}
public function daftar_post(Request $request) {
$rules = [
'name' => 'required',
'username' => 'required|unique:users',
'email' => 'required|unique:users',
'password' => 'required',
'password_confirm' => 'required|same:password',
];
$check_user = User::where('email', $request->email)->first();
if($check_user) {
if($check_user->email_verified_at == null) {
$rules['email'] = 'required';
$rules['username'] = 'required';
}
}
$validate = $request->validate($rules, [
'name.required' => 'Nama Wajib Di Isi.',
'username.required' => 'Username Wajib Di Isi.',
'username.unique' => 'Username Telah di Pakai, Silahkan Ganti.',
'email.required' => 'Email Wajib Di Isi.',
'email.unique' => 'Email Telah di Pakai, Silahkan Ganti.',
'password.required' => 'Password Wajib Di Isi.',
'password_confirm.required' => 'Konfirmasi Password Wajib Di Isi.',
'password_confirm.same' => 'Konfirmasi Password Harus sama dengan password.',
]);
$users = User::all();
$token = Str::random(99);
foreach($users as $a) {
if($a->remember_token == $token) {
$token = Str::random(99);
}
}
if($check_user) {
if($check_user->email_verified_at == null) {
$user = User::where('email', $request->email)->update([
'name' => $request->name,
'username' => $request->username,
'email' =>$request->email,
'password' => Hash::make($request->password),
'remember_token' => $token,
'role' => "User"
]);
}
} else {
$user = new User();
$user->name = $request->name;
$user->username = $request->username;
$user->email = $request->email;
$user->password = Hash::make($request->password);
$user->remember_token = $token;
$user->role = "User";
$user->save();
}
$data = [
'name' => $request->name,
'verifikasi' => 'https://pemuda.aplikasipos.info/daftar/verifikasi/'.$token
// 'verifikasi' => 'http://127.0.0.1:8000/daftar/verifikasi/'.$token
];
Mail::to($request->email)->send(new SendEmail($data));
return response()->json([
'message' => 'Daftar Berhasil',
// 'data' => $check,
]);
}
public function verifikasi($token) {
$currentDateTime = new DateTime('now');
$currentDate = $currentDateTime->format('Y-m-d h:i:s');
$update = User::where('remember_token', $token);
if($update) {
$user = User::where('remember_token', $token)->first();
if($user->email_verified_at == null) {
$update->update([
'email_verified_at' => $currentDate,
'remember_token' => null,
]);
$instansi = Instansi::create([
'nama_instansi' => Null,
'kota' => Null,
'kepala_dinas' => Null,
'alamat' => Null,
'no' => Null,
'email' => Null,
'user_id' => $user->id,
]);
$input_data = [
['Jumlah anggaran untuk kegiatan pembangunan kepemudaan dalam setahun, buatkan daftar nama kegiatan, jumlah dana(Rp), volume/target, sasaran, tgl pelaksanaan, angkatan, keterangan.', 'Jumlah anggaran untuk kegiatan pembangunan kepramukaan dalam setahun ( Non Hibah), dibuatkan daftar nama kegiatan, jumlah dana (Rp), volume/target, sasaran, tgl pelaksanaan, angkatan, keterangan.', 'Jumlah anggaran partisipasi masyarakat/CSR perusahaan dalam setahun dalam kegiatan pembangunan kepemudaan, dibuatkan daftar berisi nama kegiatan, jumlah dana (Rp), volume/target/sasaran, tgl pelaksanaan, keterangan.', 'Jumlah anggaran partisipasi masyarakat/CSR perusahaan dalam setahun dalam kegiatan pembangunan kepramukaan (sebutkan nilai rupiah/setaranya jika dalam bentuk sapras/sejenisnya Rp……………'],
['Jumlah Partisipan', 'Jumlah Kegiatan'],
['Jumlah organisasi kepemudaan yang aktif di kab/kota, yang memenuhi usia pemuda 16-30 tahun sebutkan/dibuat daftar', 'Jumlah kegiatan rapat/pertemuan kepemudaan yang difasilitasi Dispora di kab/kota, sebutkan/dibuat daftar', 'Jumlah kegiatan rapat/pertemuan kepemudaan yang dilaksanakan tingkat provinsi/Nasional di lokasi kab/kota Saudara, dan difasilitasi Dispora, sebutkan/dibuat daftar', 'Jumlah kegiatan alumni kepemudaan yang difasilitasi Dispora kab/kota, sebutkan/dibuat daftar.'],
['Jumlah Pemuda usia pemuda 16-30 tahun yang terlibat dalam kegiatan Kepemudaan di luar Dinas yang menangani Kepemudaan', 'Jumlah kegiatan Kepemudaan yang dilakukan dinas/instansi di luar Dinas yang menangani Kepemudaan di masing-masing Kabupaten dan Kota'],
['Jumlah dan jenis serta nama penerima penghargaan kepemudaan tingkat kab/kota yang dilaksanakan selama tahun 2023, sebutkan/buat daftar', 'Jumlah dan jenis serta nama penerima penghargaan kepemudaan tingkat provinsi Kalimantan Timur selama tahun 2023, sebutkan/buat daftar', 'Jumlah dan nama peserta pramuka penegak dan pandega berprestasi tingkat kab/kota, baik putra maupun putri. Sebutkan/buat daftar.', 'Jumlah dan nama peserta pramuka penegak dan pandega berprestasi tingkat provinsi, baik putra maupun putri. Sebutkan/buat daftar.', 'Jumlah dan jenis penghargaan kepemudaan dan pramuka lainnya, sebutkan…..'],
['Sebutkan jenis kegiatan kepemudaan yang difasilitasi/dibantu pihak masyarakat/melalui csr perusahaan selama tahun 2023. Dibuatkan daftar', 'Sebutkan jenis kegiatan kepramukaan yang difasilitasi/dibantu pihak masyarakat/melalui csr perusahaan selama tahun 2023. Dibuatkan daftar'],
['Buatkan daftar nama peserta wirausaha pemuda pemula yang menjadi binaan Dispora kab/kota sampai dengan tahun 2023', 'Buatkan daftar nama kelompok wirausaha pemuda pemula yang menjadi binaan Dispora kab/kota sampai dengan tahun 2023.', 'Buatkan daftar jenis pelatihan kewirausahaan pemuda pemula yang dilaksanakan Dispora kab/kota dalam tahun 2023.', 'Buatkan daftar nama peserta kreatifitas pemuda yang menjadi binaan Dispora kab/kota sampai dengan tahun 2023', 'Buatkan daftar nama kelompok kreatifitas pemuda yang menjadi binaan Dispora kab/kota sampai dengan tahun 2023.', 'Buatkan daftar jenis pelatihan kreatifitas pemuda yang dilaksanakan Dispora kab/kota dalam tahun 2023.'],
['Indikator Pendidikan', 'Indikator Kesehatan dan Kesejahteraan', 'Indikator Lapangan dan Kesempatan Kerja', 'Indikator Partisipasi dan Kepemimpinan', 'Indikator Gender dan Diskriminasi'],
];
$uraian = ['ASPEK ANGGARAN APBD KAB/KOTA',
'ASPEK PARTISIPAN DAN KEGIATAN',
'ORGANISASI KEPEMUDAAN',
'KEPEMUDAAN LINTAS SEKTOR',
'PARTISIPASI MASYARAKAT/CSR PERUSAHAAN',
'PRESTASI DAN PENGHARGAAN',
'KEWIRAUSAHAAN DAN KREATIFITAS',
'DATA KEPEMUDAAN'];
for($i = 0; $i < count($uraian); $i++) {
$data_master_input = Master_input::create([
'uraian' => $uraian[$i],
'status' => 'Tidak Ada',
'dokumen' => 'Daftar',
'keterangan' => '-',
'instansi_id' => $instansi->id
]);
for($u = 0; $u < count($input_data[$i]); $u++) {
if($i == 1) {
$kategori = ['A','B','C'];
for($y = 0; $y < count($kategori); $y++) {
$input_datass = Input_data::create([
'aspek' => $input_data[$i][$u],
'dokumen_terlampir' => null,
'keterangan' => '-',
'kategori' => $kategori[$y],
'kelengkapan' => null,
'master_input_id' => $data_master_input->id,
'user_id' => $user->id,
]);
}
} else {
$input_datass = Input_data::create([
'aspek' => $input_data[$i][$u],
'dokumen_terlampir' => null,
'keterangan' => '-',
'kategori' => null,
'kelengkapan' => null,
'master_input_id' => $data_master_input->id,
'user_id' => $user->id,
]);
}
}
}
return redirect('/instansis/'.$user->id);
}
}
}
public function instansi($id) {
$data["instansi"] = instansi::where('user_id', $id)->first();
if($data['instansi']->nama_intansi == null && $data['instansi']->kota == null && $data['instansi']->kepala_dinas == null && $data['instansi']->alamat == null && $data['instansi']->no == null && $data['instansi']->email == null) {
return view('auth.instansi', $data);
}
}
public function instansi_post(Request $request,$id) {
$rules = [
'nama_instansi' => 'required',
'kota' => 'required',
'kepala_dinas' => 'required',
'alamat' => 'required',
'no' => 'required',
'email' => 'required',
];
$instansi = instansi::where('id', $id)->first();
// if($request->nama_instansi != $instansi->nama_instansi) {
// $rules['nama_instansi'] = 'required|unique:instansis';
// }
if($request->no != $instansi->no) {
$rules['no'] = 'required|unique:instansis';
}
if($request->email != $instansi->email) {
$rules['email'] = 'required|unique:instansis|email:dns';
}
$validate = $request->validate($rules);
$instansi->update($validate);
return redirect('/login')->with('success', "Pendaftaran berhasil sekarang anda sudah bisa login!");
}
// Lupa Password
public function lupa_password() {
return view('auth.lupa_password');
}
public function lupa_password_post(Request $request) {
$check_user = User::where('email', $request->email)->where('email_verified_at','<>',null);
if($check_user) {
}
// $validate = $request->validate($rules, [
// 'name.required' => 'Nama Wajib Di Isi.',
// 'username.required' => 'Username Wajib Di Isi.',
// 'username.unique' => 'Username Telah di Pakai, Silahkan Ganti.',
// 'email.required' => 'Email Wajib Di Isi.',
// 'email.unique' => 'Email Telah di Pakai, Silahkan Ganti.',
// 'password.required' => 'Password Wajib Di Isi.',
// 'password_confirm.required' => 'Konfirmasi Password Wajib Di Isi.',
// 'password_confirm.same' => 'Konfirmasi Password Harus sama dengan password.',
// ]);
$users = User::all();
$token = Str::random(99);
foreach($users as $a) {
if($a->remember_token == $token) {
$token = Str::random(99);
}
}
if($check_user->count() == 0) {
return response()->json([
'message' => 'back',
// 'data' => $check,
]);
} else {
$updateData = $check_user->update([
'remember_token' => $token,
]);
$data = [
'name' => $request->email,
'verifikasi' => 'http://127.0.0.1:8000/lupa/password/'.$token
];
Mail::to($request->email)->send(new LupaEmail($data));
return response()->json([
'message' => 'Daftar Berhasil',
// 'data' => $check,
]);
}
}
public function verifikasi_password($token) {
$data['token'] = $token;
return view('auth.ganti_password', $data);
}
public function lupa_password_edit(Request $request, $token) {
$rules = [
'password' => 'required',
'password_confirm' => 'required|same:password',
];
$user = User::where('remember_token', $token)->first();
$validate = $request->validate($rules, [
'password.required' => 'Password Wajib Di Isi.',
'password_confirm.required' => 'Konfirmasi Password Wajib Di Isi.',
'password_confirm.same' => 'Konfirmasi Password Harus sama dengan password.',
]);
$user->update([
'password' => Hash::make($request->password),
'remember_token' => null,
]);
return redirect('/login')->with('success', "Perubahan Password berhasil silahkan anda sudah bisa melakukan login!");
}
// Logout
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->flush();
$request->session()->regenerateToken();
return redirect('/login');
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]