Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/pemuda.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/pemuda.aplikasipos.info/app/Http/Controllers/AuthController.php

<?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]