diff --git a/Admin/Install/Messages.php b/Admin/Install/Messages.php index ab699a6..91403b5 100755 --- a/Admin/Install/Messages.php +++ b/Admin/Install/Messages.php @@ -18,7 +18,6 @@ use Modules\Admin\Models\SettingsEnum; use phpOMS\Application\ApplicationAbstract; use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpResponse; -use phpOMS\Uri\HttpUri; /** * Media class. @@ -75,7 +74,7 @@ class Messages ]; $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('settings', \json_encode($settings)); diff --git a/Admin/Install/db.json b/Admin/Install/db.json index f974112..d1fc48f 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -188,6 +188,11 @@ "type": "TINYINT(1)", "null": false }, + "address_attr_type_internal": { + "name": "address_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "address_attr_type_required": { "description": "Every address must have this attribute type if set to true.", "name": "address_attr_type_required", @@ -871,6 +876,11 @@ "type": "TINYINT(1)", "null": false }, + "unit_attr_type_internal": { + "name": "unit_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "unit_attr_type_required": { "description": "Every unit must have this attribute type if set to true.", "name": "unit_attr_type_required", @@ -1399,6 +1409,11 @@ "type": "TINYINT(1)", "null": false }, + "account_attr_type_internal": { + "name": "account_attr_type_internal", + "type": "TINYINT(1)", + "null": false + }, "account_attr_type_required": { "description": "Every account must have this attribute type if set to true.", "name": "account_attr_type_required", @@ -1656,50 +1671,35 @@ } } }, - "account_contact": { - "name": "account_contact", + "contact": { + "name": "contact", "fields": { - "account_contact_id": { - "name": "account_contact_id", + "contact_id": { + "name": "contact_id", "type": "INT", "null": false, "primary": true, "autoincrement": true }, - "account_contact_type": { - "name": "account_contact_type", - "type": "TINYINT", - "null": false - }, - "account_contact_subtype": { - "name": "account_contact_subtype", - "type": "TINYINT", - "null": false - }, - "account_contact_order": { - "name": "account_contact_order", - "type": "INT", - "null": false - }, - "account_contact_content": { - "name": "account_contact_content", + "contact_title": { + "name": "contact_title", "type": "VARCHAR(255)", "null": false }, - "account_contact_module": { - "name": "account_contact_module", - "type": "VARCHAR(190)", - "null": true, - "default": null, - "foreignTable": "module", - "foreignKey": "module_id" + "contact_type": { + "name": "contact_type", + "type": "TINYINT", + "null": false }, - "account_contact_account": { - "name": "account_contact_account", - "type": "INT", - "null": false, - "foreignTable": "account", - "foreignKey": "account_id" + "contact_subtype": { + "name": "contact_subtype", + "type": "TINYINT", + "null": false + }, + "contact_content": { + "name": "contact_content", + "type": "VARCHAR(255)", + "null": false } } }, @@ -1737,6 +1737,40 @@ } } }, + "account_contact_rel": { + "name": "account_contact_rel", + "fields": { + "account_contact_rel_id": { + "name": "account_contact_rel_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "account_contact_rel_account": { + "name": "account_contact_rel_account", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + }, + "account_contact_rel_module": { + "name": "account_contact_rel_module", + "type": "VARCHAR(190)", + "null": true, + "default": null, + "foreignTable": "module", + "foreignKey": "module_id" + }, + "account_contact_rel_contact": { + "name": "account_contact_rel_contact", + "type": "INT", + "null": false, + "foreignTable": "contact", + "foreignKey": "contact_id" + } + } + }, "account_account_rel": { "description": "Accounts can belong to other accounts. E.g. a user can belong to a company account", "name": "account_account_rel", diff --git a/Admin/Installer.php b/Admin/Installer.php index 24100d7..dc98bf1 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -31,7 +31,6 @@ use phpOMS\Module\ModuleInfo; use phpOMS\System\File\PathException; use phpOMS\System\OperatingSystem; use phpOMS\System\SystemType; -use phpOMS\Uri\HttpUri; /** * Installer class. @@ -287,13 +286,13 @@ final class Installer extends InstallerAbstract * * @since 1.0.0 */ - private static function createSettings(ApplicationAbstract $app, array $data) : array + public static function createSettings(ApplicationAbstract $app, array $data) : array { /** @var \Modules\Admin\Controller\ApiController $module */ $module = $app->moduleManager->get('Admin'); $response = new HttpResponse(); - $request = new HttpRequest(new HttpUri('')); + $request = new HttpRequest(); $request->header->account = 1; $request->setData('id', $data['id'] ?? 0); diff --git a/Admin/Routes/Cli.php b/Admin/Routes/Cli.php index d13a6a9..eeaaece 100755 --- a/Admin/Routes/Cli.php +++ b/Admin/Routes/Cli.php @@ -10,13 +10,13 @@ return [ 'verb' => RouteVerb::ANY, ], ], - '^/admin/event.*$' => [ + '^/admin/event(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\CliController:cliRunEvent', 'verb' => RouteVerb::ANY, ], ], - '^/admin/encryption/change.*$' => [ + '^/admin/encryption/change(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\CliController:cliEncryptionChange', 'verb' => RouteVerb::ANY, diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 9530d96..6761ca9 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -153,7 +153,7 @@ return [ ], ], ], - '^.*/admin/find/group.*$' => [ + '^.*/admin/find/group(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiGroupFind', 'verb' => RouteVerb::GET, @@ -164,7 +164,7 @@ return [ ], ], ], - '^.*/admin/find/accgrp.*$' => [ + '^.*/admin/find/accgrp(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiAccountGroupFind', 'verb' => RouteVerb::GET, @@ -226,7 +226,7 @@ return [ ], ], - '^.*/admin/module/status.*$' => [ + '^.*/admin/module/status(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiModuleStatusUpdate', 'verb' => RouteVerb::SET, @@ -238,7 +238,7 @@ return [ ], ], - '^.*/admin/group/account.*$' => [ + '^.*/admin/group/account(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiAddAccountToGroup', 'verb' => RouteVerb::PUT, @@ -249,7 +249,7 @@ return [ ], ], ], - '^.*/admin/account/group.*$' => [ + '^.*/admin/account/group(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiAddGroupToAccount', 'verb' => RouteVerb::PUT, @@ -261,7 +261,7 @@ return [ ], ], - '^.*/admin/group/permission.*$' => [ + '^.*/admin/group/permission(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiGroupPermissionGet', 'verb' => RouteVerb::PUT, @@ -299,7 +299,7 @@ return [ ], ], ], - '^.*/admin/account/permission.*$' => [ + '^.*/admin/account/permission(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiAccountPermissionGet', 'verb' => RouteVerb::GET, @@ -337,7 +337,7 @@ return [ ], ], ], - '^.*/admin/module/reinit.*$' => [ + '^.*/admin/module/reinit(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiReInit', 'verb' => RouteVerb::GET, @@ -349,7 +349,7 @@ return [ ], ], - '^.*/admin/update/url.*$' => [ + '^.*/admin/update/url(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiUpdateFile', 'verb' => RouteVerb::GET, @@ -360,7 +360,7 @@ return [ ], ], ], - '^.*/admin/update/check.*$' => [ + '^.*/admin/update/check(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiCheckForUpdates', 'verb' => RouteVerb::PUT, @@ -371,7 +371,7 @@ return [ ], ], ], - '^.*/admin/update/component.*$' => [ + '^.*/admin/update/component(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\ApiController:apiCheckForUpdates', 'verb' => RouteVerb::PUT, @@ -382,4 +382,62 @@ return [ ], ], ], + '^.*/account/address$' => [ + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiAddressCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ADDRESS, + ], + ], + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiAddressUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::ADDRESS, + ], + ], + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiAddressDelete', + 'verb' => RouteVerb::DELETE, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionCategory::ADDRESS, + ], + ], + ], + '^.*/account/contact$' => [ + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiContactCreate', + 'verb' => RouteVerb::PUT, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionCategory::ADDRESS, + ], + ], + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiContactUpdate', + 'verb' => RouteVerb::SET, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::MODIFY, + 'state' => PermissionCategory::ADDRESS, + ], + ], + [ + 'dest' => '\Modules\Admin\Controller\ApiAttributeController:apiContactDelete', + 'verb' => RouteVerb::DELETE, + 'permission' => [ + 'module' => ApiController::NAME, + 'type' => PermissionType::DELETE, + 'state' => PermissionCategory::ADDRESS, + ], + ], + ], ]; diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 993df12..061a62a 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/forgot.*$' => [ + '^.*/forgot(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewForgot', 'verb' => RouteVerb::GET, @@ -27,7 +27,7 @@ return [ ], ], - '^.*/admin/module/settings.*$' => [ + '^.*/admin/module/settings(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleSettings', 'verb' => RouteVerb::GET, @@ -39,7 +39,7 @@ return [ ], ], - '^.*/admin/account/list.*$' => [ + '^.*/admin/account/list(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewAccountList', 'verb' => RouteVerb::GET, @@ -50,7 +50,7 @@ return [ ], ], ], - '^.*/admin/account/settings.*$' => [ + '^.*/admin/account/settings(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewAccountSettings', 'verb' => RouteVerb::GET, @@ -61,7 +61,7 @@ return [ ], ], ], - '^.*/admin/account/create.*$' => [ + '^.*/admin/account/create(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewAccountCreate', 'verb' => RouteVerb::GET, @@ -72,7 +72,7 @@ return [ ], ], ], - '^.*/admin/group/list.*$' => [ + '^.*/admin/group/list(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewGroupList', 'verb' => RouteVerb::GET, @@ -83,7 +83,7 @@ return [ ], ], ], - '^.*/admin/group/settings.*$' => [ + '^.*/admin/group/settings(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewGroupSettings', 'verb' => RouteVerb::GET, @@ -94,7 +94,7 @@ return [ ], ], ], - '^.*/admin/group/create.*$' => [ + '^.*/admin/group/create(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewGroupCreate', 'verb' => RouteVerb::GET, @@ -105,7 +105,7 @@ return [ ], ], ], - '^.*/admin/module/list.*$' => [ + '^.*/admin/module/list(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleList', 'verb' => RouteVerb::GET, @@ -116,7 +116,7 @@ return [ ], ], ], - '^.*/admin/module/info\?.*$' => [ + '^.*/admin/module/info(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleInfo', 'verb' => RouteVerb::GET, @@ -127,7 +127,7 @@ return [ ], ], ], - '^.*/admin/module/log\?.*$' => [ + '^.*/admin/module/log(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleLog', 'verb' => RouteVerb::GET, @@ -138,7 +138,7 @@ return [ ], ], ], - '^.*/admin/module/route/list\?.*$' => [ + '^.*/admin/module/route/list(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleRouteList', 'verb' => RouteVerb::GET, @@ -149,7 +149,7 @@ return [ ], ], ], - '^.*/admin/module/hook/list\?.*$' => [ + '^.*/admin/module/hook/list(\?.*$|$)' => [ [ 'dest' => '\Modules\Admin\Controller\BackendController:viewModuleHookList', 'verb' => RouteVerb::GET, diff --git a/Admin/Settings/Theme/Backend/settings.tpl.php b/Admin/Settings/Theme/Backend/settings.tpl.php index 7b8e1a2..9811e4a 100755 --- a/Admin/Settings/Theme/Backend/settings.tpl.php +++ b/Admin/Settings/Theme/Backend/settings.tpl.php @@ -37,7 +37,7 @@ $temperatures = \phpOMS\Utils\Converter\TemperatureType::getConstants(); $serverModes = ApplicationStatus::getConstants(); -$l11n = $this->getData('default_localization') ?? new NullLocalization(); +$l11n = $this->data['default_localization'] ?? new NullLocalization(); echo $this->data['nav']->render(); ?> @@ -288,7 +288,7 @@ echo $this->data['nav']->render(); @@ -296,8 +296,8 @@ echo $this->data['nav']->render();