Skip to content
Snippets Groups Projects
Commit d3237fa4 authored by Nicholas Wijaya's avatar Nicholas Wijaya
Browse files

Merge branch 'mass-register' into 'master'

Mass register

See merge request !1
parents dca7b84b 8ace0a68
Branches
1 merge request!1Mass register
Pipeline #7037 canceled with stage
......@@ -81,13 +81,13 @@ class RegisterController extends Controller
}
}
public function registerUser(Request $request) {
$data = $request->all();
public function registerUser(array $data) {
$username = $data['username'];
if(User::where('username',$username)->count()>0) {
echo '<div class="alert alert-warning alert-dismissible fade show text-center">
<button type="button" class="close" data-dismiss="alert">&times;</button>
This user <strong>already exist.</strong>
User ' . $username . ' <strong>already exist.</strong>
</div>';
return view('auth.register');
} else if(strlen($data['username']) > 18){
......@@ -103,25 +103,72 @@ class RegisterController extends Controller
</div>';
return view('auth.register');
} else {
$user = $this->create($data);
$role = $data['role'];
if($role == User::ROLE_DOSEN) {
Dosen::create(['id'=>$user->id]);
}else if($role == User::ROLE_MAHASISWA) {
$id_kelas_tesis = KelasTesis::orderByRaw('updated_at - created_at DESC')->first();
Mahasiswa::create(['id'=>$user->id, 'id_kelas_tesis'=>$id_kelas_tesis->id]);
} else if($role == User::ROLE_MANAJER) {
Manajer::create(['id'=>$user->id]);
}
echo '<div class="alert alert-success alert-dismissible fade show text-center">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Success !</strong> New user has successfully registered!
</div>';
return view('auth.register');
$user = $this->create($data);
$role = $data['role'];
if($role == User::ROLE_DOSEN) {
Dosen::create(['id'=>$user->id]);
} else if ($role == User::ROLE_MAHASISWA) {
$id_kelas_tesis = KelasTesis::orderByRaw('updated_at - created_at DESC')->first();
Mahasiswa::create(['id'=>$user->id, 'id_kelas_tesis'=>$id_kelas_tesis->id]);
} else if ($role == User::ROLE_MANAJER) {
Manajer::create(['id'=>$user->id]);
}
echo '<div class="alert alert-success alert-dismissible fade show text-center">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>Success !</strong> New user has successfully registered!
</div>';
return view('auth.register');
}
// echo $id;
}
public function massRegister(String $filename, String $role) {
$file = fopen($filename, 'r');
while (($line = fgetcsv($file, 1000, ",")) !== FALSE) {
$data['name'] = $line[0];
$data['username'] = $line[1];
$data['email'] = $line[2];
$data['phone'] = $line[3];
$data['password'] = $line[4];
$data['role'] = $role;
$this->registerUser($data);
}
fclose($file);
}
public function registerUsers(Request $request) {
$data = $request->all();
if (isset($_FILES["file"])) {
$file = $_FILES["file"];
//if there was an error uploading the file
if ($file["error"] > 0) {
echo '<div class="alert alert-success alert-dismissible fade show text-center">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>File Error!</strong> Please try to reupload the file.
</div>';
return view('auth.register');
}
else {
$extension = explode(".", $file["name"]);
if (end($extension) != 'csv') {
echo '<div class="alert alert-success alert-dismissible fade show text-center">
<button type="button" class="close" data-dismiss="alert">&times;</button>
<strong>File Error!</strong> Extension of the file must be csv.
</div>';
return view('auth.register');
}
else {
$this->massRegister($file["tmp_name"], $data["role"]);
return view('auth.register');
}
}
}
else {
$this->registerUser($data);
return view('auth.register');
}
}
}
......@@ -104,6 +104,56 @@
</div>
</div>
</div>
<!-- mass register -->
<div class="col-md-8">
<div class="card">
<div class="card-header">Mass Register</div>
<div class="card-body">
Upload CSV file with format:
name, NIM, e-mail, phone, password
<form method="POST" action="/register" enctype="multipart/form-data">
@csrf
<div class="form-group row">
<label for="role" class="col-md-4 col-form-label text-md-right">Role</label>
<div class="col-md-6">
<select type="text" id="role" name="role" class="form-control">
<option value="Mahasiswa">Mahasiswa</option>
<option value="Dosen">Dosen</option>
<option value="Manajer">Manajer</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="file" class="col-md-4 col-form-label text-md-right">File</label>
<div class="col-md-6">
<input id="file" type="file" name="file" class="form-control{{ $errors->has('file') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}" required autofocus>
@if ($errors->has('file'))
<span class="invalid-feedback">
<strong>{{ $errors->first('file') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
Register
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
......@@ -35,7 +35,8 @@ Route::post('mahasiswa/edit/{id}', 'MahasiswaController@edit');
Route::get('register','Auth\RegisterController@showForm')->name('register');
Route::post('register','Auth\RegisterController@registerUser')->name('registerPost');
Route::post('register','Auth\RegisterController@registerUsers')->name('registerPost');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/generate/admin', 'Auth\RegisterController@generateAdmin');
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment