added new tablet mode for creating shipping notes

This commit is contained in:
2025-08-05 13:32:50 +02:00
parent 1c4c7368a2
commit dff3a4f5b8
11 changed files with 260 additions and 21 deletions

View File

@@ -27,21 +27,26 @@ class TTCrud extends mfBaseController {
}
protected function init() {
$this->needlogin = true;
$me = new User();
$me->loadMe();
$this->user = $me;
$this->layout()->set('me', $me);
$className = get_class($this);
if (isset($this->permissionCheck) && !$me->can($this->permissionCheck)) {
$this->redirect("Dashboard");
} else if (!$me->can($this->permissionCheck) && !$me->is(["Admin"])) {
$this->redirect("Dashboard");
if (defined('TT_WAREHOUSE_LOGIN_OVERRIDE') && is_array(TT_WAREHOUSE_LOGIN_OVERRIDE)
&& in_array($className, TT_WAREHOUSE_LOGIN_OVERRIDE) && !mfLoginController::isLoggedIn())
$this->user = $this->loginOverride();
else {
$this->needlogin = true;
$this->user = new User();
$this->user->loadMe();
}
$this->layout()->set('me', $this->user);
$c = get_class($this);
foreach ([str_replace('Controller', 'Model', $c), str_replace('Controller', '', $c)] as $m)
if (class_exists($m)) {
if (method_exists($this, 'permissionsCheckOverride'))
$this->permissionsCheckOverride();
else if (!$this->user->is(["Admin"]))
$this->redirect("Dashboard");
foreach ([str_replace('Controller', 'Model', $className), str_replace('Controller', '', $className)] as $m) {
if (class_exists($m))
$this->model = new $m();
break;
}
@@ -52,6 +57,37 @@ class TTCrud extends mfBaseController {
if (method_exists($this, 'afterInit')) $this->afterInit();
}
protected function loginOverride() {
$allowedIPs = ['193.105.204.200', '91.227.230.253', '193.105.204.195', '172.18.0.1'];
if (!in_array($_SERVER['REMOTE_ADDR'], $allowedIPs)) $this->redirect('Dashboard');
if (isset($_POST['wantedUserId']) && is_numeric($_POST['wantedUserId'])) {
$user = new User($_POST['wantedUserId']);
if ($user->id && $user->address_id == 1) {
$_SESSION[MFAPPNAME . '_warehouse_login_override'] = $user->id;
$_SESSION[MFAPPNAME . '_warehouse_login_override_timestamp'] = time();
$this->redirect('WarehouseShippingNote');
}
$this->redirect('Dashboard');
}
$sessionUserId = $_SESSION[MFAPPNAME . '_warehouse_login_override'] ?? null;
$sessionTimestamp = $_SESSION[MFAPPNAME . '_warehouse_login_override_timestamp'] ?? 0;
if (is_numeric($sessionUserId) && (time() - $sessionTimestamp <= 300)) {
$user = new User($sessionUserId);
if ($user->id && $user->address_id == 1) return $user;
$this->redirect('WarehouseShippingNote');
}
$users = UserModel::search(['employee' => true, 'active' => true]);
$userOptions = array_map(fn($user) => ['value' => (int)$user->id, 'text' => $user->name], $users);
$this->layout()->set('userOptions', $userOptions);
$this->layout()->setTemplate("VueViews/WarehouseLoginOverride");
echo $this->layout()->render();
exit;
}
/**
* Returns the checkArray for the CRUD component.
* @return array

View File

@@ -128,7 +128,7 @@ class mfLoginController extends mfBaseController
UserToken::checkToken();
if ($_SESSION[MFAPPNAME . '_username'] && $_SESSION[MFAPPNAME . '_ip']) {
if (isset($_SESSION[MFAPPNAME . '_username']) && $_SESSION[MFAPPNAME . '_username'] && $_SESSION[MFAPPNAME . '_ip']) {
$username = $_SESSION[MFAPPNAME . '_username'];
$ip = $_SERVER['REMOTE_ADDR'];
$sid = session_id();