Add config to specify which cawangan are enabled to use MyKad reader

This commit is contained in:
afiq.hamzah
2023-02-28 15:19:57 +08:00
parent 6f05fc9874
commit bc87fd8600
4 changed files with 34 additions and 4 deletions
+3
View File
@@ -44,3 +44,6 @@ AWS_BUCKET=
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
MYKAD_READER_PORT=8085
MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
+6
View File
@@ -3,6 +3,7 @@
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
@@ -37,4 +38,9 @@ class User extends Authenticatable
protected $casts = [
'email_verified_at' => 'datetime',
];
public function cawangan_kerja(): HasOne
{
return $this->hasOne(Cawangan::class, 'kodcaw', 'cawangan');
}
}
+4 -3
View File
@@ -1,8 +1,9 @@
<?php
$default_port = '8085';
$getScannerEndpoint = fn($x) => 'http://localhost:' . $x . '/?MYKADJSON';
$getReaderEndpoint = fn($x) => 'http://localhost:' . $x . '/?MYKADJSON';
return[
'endpoint' => env('MYKAD_SCANNER_endpoint', $getScannerEndpoint(env('MYKAD_SCANNER_PORT', $default_port))),
];
'endpoint' => env('MYKAD_READER_ENDPOINT', $getReaderEndpoint(env('MYKAD_READER_PORT', $default_port))),
'enabled_cawangan' => array_map(fn ($cawangan) => trim($cawangan), explode(',', env('MYKAD_READER_ENABLED_CAWANGAN'))) ?? [],
];
+21 -1
View File
@@ -37,7 +37,27 @@
<button class="btn btn-outline-primary" type="submit" id="button-addon2">Cari</button>
</div>
</div>
<span class="btn btn-outline-primary" id="button_read_mykad">Baca MyKad</span>
@php
$user_cawangan = strtolower(auth()->user()->cawangan_kerja->details_caw);
$enabled_cawangan = array_map(fn($x) => strtolower($x), config('mykad-reader.enabled_cawangan'));
$is_enabled_to_use_mykad_reader = function () use($user_cawangan, $enabled_cawangan){
if(sizeof($enabled_cawangan) == 0){
return true;
}
if(sizeof($enabled_cawangan) == 1 && $enabled_cawangan[0] === ''){
return true;
}
return in_array($user_cawangan, $enabled_cawangan);
};
@endphp
@if( $is_enabled_to_use_mykad_reader() )
<span class="btn btn-outline-primary" id="button_read_mykad">Baca MyKad</span>
@endif
</div>
</div>
</form>