sekolah_adiwiyata/app/Http/Controllers/Auth/CustomRegisterController.php

104 lines
3.9 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Master\MasterGroupUser;
use App\Models\Master\Provinsi;
use App\Models\Master\Sekolah;
use App\Models\ProfileSekolah as Profile;
class CustomRegisterController extends Controller
{
public function index()
{
$data['provinsi'] = Provinsi::where('kode_wilayah','010000')->get();
return view('auth.register',$data);
}
public function post_register(Request $request)
{
try {
Validator::make($request->all(), [
'email' => 'required|unique:users|email',
// 'name' => 'required|max:50',
'provinsi' => 'required',
'kabupaten' => 'required',
'kecamatan' => 'required',
'sekolah' => 'required',
// 'tingkat_sekolah' => 'required',
// 'status_sekolah' => 'required',
'alamat_sekolah' => 'required',
'kontak_person' => 'required',
'telp' => 'required',
'check' => 'required',
'password' => 'required|min:8|max:15|regex:/[a-z]/|regex:/[A-Z]/|regex:/[0-9]/|regex:/[@$!%*#?&]/', //min 8 char, maks 15 char, min 1 symbol, min 1 uppercase, min 1 lowercase, 1 number
],[
'password.min' => 'password Minimal 8 Karakter',
'password.max' => 'password Maksimal 15 Karakter',
'password.regex' => 'Format Kata Sandi harus mengandung minimal Huruf Besar, Huruf Kecil, Angka, Spesial Karakter',
])->validate();
$cek = Profile::where('npsn',$request->npsn)->count();
if($cek > 0){
return redirect('register')->with([
'message' => 'Untuk NPSN :'.$request->npsn.' Sudah terdaftar! Silahkan Login',
'type' => "error"
]);
}
$sekolah = Sekolah::find(decode_id($request->sekolah));
$user = new User;
$user->email = $request->email;
$user->username = $sekolah->npsn;
$user->password = Hash::make($request->password);
$user->name = $sekolah->nama_sekolah;
$user->ms_group_id = 2;
$user->save();
$profile = new Profile;
$profile->user_id = $user->id;
$profile->ms_provinsi_id = decode_id($request->provinsi);
$profile->ms_kabupaten_id = decode_id($request->kabupaten);
$profile->ms_kecamatan_id = decode_id($request->kecamatan);
$profile->ms_sekolah_id = decode_id($request->sekolah);
$profile->npsn = $sekolah->npsn;
$profile->ms_tingkat_sekolah_id = $sekolah->ms_tingkat_sekolah_id;
$profile->status_sekolah = $sekolah->status;
$profile->alamat_sekolah = $request->alamat_sekolah;
$profile->kontak_person = $request->kontak_person;
$profile->telp = $request->telp;
$profile->save();
$group = new MasterGroupUser;
$group->user_id = $user->id;
$group->ms_group_id = 2; //sekolah
$group->save();
return redirect('/login')->with([
'message' => 'Berhasil membuat akun baru, silahkan login',
'type' => 'success',
]);
} catch (Exception $e) {
return redirect('register')->with([
'message' => $e->getMessage(),
'type' => "error"
]);
}
}
}