doorlogmanager view: show human readable errorcodes; DoorManagerLogController.php authorization fix

This commit is contained in:
Schneider Roland 2023-03-01 17:45:39 +01:00
parent ad7042c300
commit 8f63efa946
3 changed files with 81 additions and 34 deletions

View File

@ -98,7 +98,12 @@ class DoorManager extends BaseObject
$direction = DoorLog::$DIRECTION_OUT;
break;
default:
throw new BadRequestHttpException("$requestId: Direction not supported: " . $direction);
throw new FitnessException(
"Direction $direction not supported",
FitnessException::TYPE_BAD_REQUEST,
"INVALID_DIRECTION",
$context
);
}
$context->direction = $direction;
@ -108,18 +113,24 @@ class DoorManager extends BaseObject
$virtualKey = VirtualKey::findOne(['number' => $identifier]);
if (!isset($virtualKey)) {
$context->error = true;
$context->errorCode = "VIRTUAL_KEY_NOT_FOUND";
throw new BadRequestHttpException("$requestId: Virtual key not found: " . $identifier);
throw new FitnessException(
"Virtual Key Not Found",
FitnessException::TYPE_BAD_REQUEST,
"VIRTUAL_KEY_NOT_FOUND",
$context
);
}
$card = Card::findOne($virtualKey->id_card);
if ($card != null) {
$card = Card::readCard($card->number);
}
if ($card == null) {
$context->error = true;
$context->errorCode = "CARD_NOT_FOUND";
throw new BadRequestHttpException("$requestId: Card not found by virtual key: " . $identifier . '/' . $virtualKey->id_card);
throw new FitnessException(
"Virtual Key Not Found",
FitnessException::TYPE_BAD_REQUEST,
"CARD_FOR_VIRTUAL_KEY_NOT_FOUND",
$context
);
}
$cardNumber = $card->number;
\Yii::info("$requestId: virtual key and card loaded in sec " . $stopWatch->split());
@ -128,9 +139,12 @@ class DoorManager extends BaseObject
$card = Card::readCard(Helper::fixAsciiChars($identifier));
\Yii::info("$requestId: Card loaded in sec " . $stopWatch->split());
if (!isset($card)) {
$context->error = true;
$context->errorCode = "CARD_NOT_FOUND";
throw new BadRequestHttpException("$requestId: Card not found with number: " . $identifier);
throw new FitnessException(
"Virtual Key Not Found",
FitnessException::TYPE_BAD_REQUEST,
"CARD_NOT_FOUND",
$context
);
}
\Yii::info("$requestId: card loaded in sec " . $stopWatch->split());
$virtualKey = VirtualKey::findOne(['id_card' => $card->id_card]);

View File

@ -30,6 +30,25 @@ use frontend\models\LogForm;
*/
class DoorManagerLogController extends Controller {
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['index'],
'rules' => [
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
public function actionIndex()
{
$searchModel = new DoorManagerLogSearch();

View File

@ -5,7 +5,7 @@ use yii\grid\GridView;
use yii\helpers\Url;
/* @var $this yii\web\View */
/* @var $searchModel backend\models\DoorLogManagerSearch */
/* @var $searchModel frontend\models\DoorManagerLogSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = "Kapu események";
@ -34,29 +34,43 @@ $this->params['breadcrumbs'][] = $this->title;
[ 'attribute' => 'validation_kind', "value" =>"validation_kind", "label" => 'Típus' ],
[ 'attribute' => 'key_number', "value" =>"key_number", "label" => 'Kulcs' ],
[ 'attribute' => 'error', "value" =>"error", "label" => 'Hiba' ],
[ 'attribute' => 'error_code', "value" =>"error_code", "label" => 'Hiba kód' ],
// 'id_door_ma',
// 'name',
// [ 'attribute' => 'id_user', "value" =>"userName" ],
// [ 'attribute' => 'id_user', "value" =>"userName" ],
//
// ['class' => 'yii\grid\ActionColumn',
// 'template' => '{view}',
// 'urlCreator' => function( $action, $model, $key, $index ){
// if ( $action == 'view' ){
// return Url::to(['inventory-item/index' , 'id'=> $model->id_inventory]);
// }
// },
// 'buttons' =>[
// 'view' =>function ($url, $model, $key) {
// return Html::a('Részletek', $url,['class' => 'btn btn-xs btn-primary',
// ]) ;
// }
// ]
//
// ],
[ 'attribute' => 'error_code', "label" => 'Hiba kód' ,"value" =>function ($model) {
switch ($model->error_code){
case "CARD_NOT_FOUND":
return "Ismeretlen Kártya";
case "VIRTUAL_KEY_NOT_FOUND":
return "Ismeretlen virtuális kulcs";
case "ALREADY_IN":
return "Már belépett (1)";
case "VIRTUAL_KEY_ALREADY_IN":
return "Már belépett (2)";
case "UNKNOWN":
return "Ismeretlen hiba";
case "EMERGENCY_OPEN_FAILED":
return "Sikertelen vésznyitás";
case "EMPLOYEE_FAILED":
return "Sikertelen belépés 'munkatárs' kártyával";
case "NOT_FOUND_ACTIVE_TICKET":
return "Nem található érvényes bérlet";
case "NOT_FOUND_CUSTOMER":
return "Ismeretlen vendég";
case "REQUIRED_KEY":
return "Öltözőkulcs szükséges";
case "CARD_STATUS_NOT_ACTIVE":
case "CARD_STATUS_INACTIVE":
return "Kártya inaktív";
case "CARD_LOCKER_KEY_ASSIGNED_FLAG":
return "Öltözőkulcs leadása kötelező (1)";
case "CARD_LOCKER_KEY_ASSIGNED_KEY":
return "Öltözőkulcs leadása kötelező (2)";
case "VIRTUAL_KEY_MOVE_OUT_WITHOUT_MOVE_IN":
return "Először belépés szükséges";
case "VIRTUAL_KEY_ALREADY_OUT":
return "Már kilépett";
default:
return $model->error_code;
}
}],
],
]); ?>