diff --git a/src/Modules/Core/d3_totp_utils.php b/src/Modules/Core/d3_totp_utils.php index 8c13c46..8960e4d 100644 --- a/src/Modules/Core/d3_totp_utils.php +++ b/src/Modules/Core/d3_totp_utils.php @@ -15,22 +15,29 @@ namespace D3\Totp\Modules\Core; -use D3\Totp\Modules\Application\Model\d3_totp_user; -use OxidEsales\Eshop\Application\Model\User; +use D3\Totp\Application\Model\d3totp; +use Doctrine\DBAL\DBALException; +use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException; +use OxidEsales\Eshop\Core\Registry; class d3_totp_utils extends d3_totp_utils_parent { + /** + * @return bool + * @throws DBALException + * @throws DatabaseConnectionException + */ public function checkAccessRights() { $blAuth = parent::checkAccessRights(); - $userID = \OxidEsales\Eshop\Core\Registry::getSession()->getVariable("auth"); - /** @var d3_totp_user $user */ - $user = oxNew(User::class); - $user->load($userID); + $userID = Registry::getSession()->getVariable("auth"); + /** @var d3totp $totp */ + $totp = oxNew(d3totp::class); - if ($blAuth && $user->d3UseTotp()) { - //check TOTP + // und kein auth + if ($blAuth && $totp->UserUseTotp($userID)) { +echo __CLASS__." - ".__FUNCTION__." - ".__LINE__."
"; } return $blAuth; diff --git a/src/metadata.php b/src/metadata.php index bde5228..e9195a3 100644 --- a/src/metadata.php +++ b/src/metadata.php @@ -37,307 +37,44 @@ $sModuleId = 'd3totp'; $aModule = array( 'id' => $sModuleId, 'title' => - (class_exists(d3utils::class) ? d3utils::getInstance()->getD3Logo() : 'D³') . ' Erweiterte Suche / Extended Search', + (class_exists(d3utils::class) ? d3utils::getInstance()->getD3Logo() : 'D³') . ' Zwei-Faktor-Authentisierung', 'description' => array( - 'de' => 'Stellt fehlertolerante Suche und weitere Filtermöglichkeiten zur Verfügung.
Aktivieren Sie die Moduleinträge bitte immer und steuern Sie die Modulaktivität ausschließlich im Adminbereich des Moduls.', - 'en' => '', + 'de' => 'Zwei-Faktor-Authentisierung (TOTP) für OXID eSales Shop', + 'en' => 'Two-factor authentication (TOTP) for OXID eSales shop', ), 'thumbnail' => 'picture.png', - 'version' => '6.1.2.0', + 'version' => '0.1', 'author' => 'D³ Data Development (Inh.: Thomas Dartsch)', 'email' => 'support@shopmodule.com', 'url' => 'http://www.oxidmodule.com/', 'extend' => array( - OxidModel\User::class => \D3\Totp\Modules\Application\Model\d3_totp_user::class, - LoginController::class => \D3\Extsearch\Modules\Application\Controller\Admin\d3_article_list_extsearch::class, - // render - Utils::class => \D3\Extsearch\Modules\Application\Controller\d3_details_extsearch::class, + //OxidModel\User::class => \D3\Totp\Modules\Application\Model\d3_totp_user::class, + LoginController::class => \D3\Totp\Modules\Application\Controller\Admin\d3_totp_LoginController::class, + Utils::class => \D3\Totp\Modules\Core\d3_totp_utils::class, ), 'controllers' => array( - 'd3_cfg_extsearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch::class, - 'd3_cfg_extsearch_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_list::class, - 'd3_cfg_extsearch_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_main::class, - 'd3_cfg_extsearch_navigation' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_navigation::class, - 'd3_cfg_extsearch_quicksearch' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_quicksearch::class, - 'd3_cfg_extsearch_plugins' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_plugins::class, - 'd3_cfg_extsearch_licence' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_licence::class, - - 'd3_cfg_extsearchstat' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat::class, - 'd3_cfg_extsearchstat_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchstat_list::class, - 'd3_cfg_extsearch_statistik' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearch_statistik::class, - - 'd3_cfg_extsearchsyneditor' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor::class, - 'd3_cfg_extsearchsyneditor_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_list::class, - 'd3_cfg_extsearchsyneditor_main' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_main::class, - 'd3_cfg_extsearchsyneditor_manage' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchsyneditor_manage::class, - - 'd3_cfg_extsearchlog' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog::class, - 'd3_cfg_extsearchlog_list' => \D3\Extsearch\Application\Controller\Admin\d3_cfg_extsearchlog_list::class, - - 'd3_extsearch_response' => \D3\Extsearch\Application\Controller\d3_extsearch_response::class, ), 'templates' => array( - 'd3_cfg_extsearch_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main.tpl', - 'd3_cfg_extsearch_main_sortanalysis.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_main_sortanalysis.tpl', - 'd3_cfg_extsearch_navigation.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_navigation.tpl', - 'd3_cfg_extsearch_plugins.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_plugins.tpl', - 'd3_cfg_extsearch_quicksearch.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_quicksearch.tpl', - 'd3_cfg_extsearch_statistik.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearch_statistik.tpl', - 'd3_cfg_extsearchsyneditor_list.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_list.tpl', - 'd3_cfg_extsearchsyneditor_main.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_main.tpl', - 'd3_cfg_extsearchsyneditor_manage.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_cfg_extsearchsyneditor_manage.tpl', - 'd3_extsearch_report_hitless.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_hitless.tpl', - 'd3_extsearch_report_mostsearches.tpl' => 'd3/extsearch/Application/views/admin/tpl/reports/d3_extsearch_report_mostsearches.tpl', - 'd3_extsearch_plugin.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_plugin.tpl', - 'd3_extsearch_popup.tpl' => 'd3/extsearch/Application/views/admin/tpl/d3_extsearch_popup.tpl', - - 'd3_ext_search_suggestsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_suggestsearch.tpl', - - 'd3_ext_search_highlight.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_highlight.tpl', - - 'd3_ext_search_filter.tpl' => 'd3/extsearch/Application/views/tpl/d3_ext_search_filter.tpl', - 'd3_inc_ext_search_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3_inc_ext_search.tpl', - 'd3_list_filters_azure.tpl' => 'd3/extsearch/Application/views/tpl/azure/d3extsearch_alist_filters.tpl', - 'd3_search_contents_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_contents.tpl', - 'd3_search_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_search_filters.tpl', - 'd3_list_filters_flow.tpl' => 'd3/extsearch/Application/views/tpl/flow/d3_list_filters.tpl', - 'd3_inc_ext_search_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3_inc_ext_search.tpl', - 'd3_list_filters_mobile.tpl' => 'd3/extsearch/Application/views/tpl/mobile/d3extsearch_alist_filters.tpl', - - 'd3_ext_search_filter_category.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/category.tpl', - 'd3_ext_search_filter_vendor.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/vendor.tpl', - 'd3_ext_search_filter_manufacturer.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/manufacturer.tpl', - 'd3_ext_search_filter_attribute.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/attribute.tpl', - 'd3_ext_search_filter_priceselector.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/priceselector.tpl', - 'd3_ext_search_filter_jqslider.tpl' => 'd3/extsearch/Application/views/tpl/filterelements/jqslider.tpl', - - 'd3_ddeovisualcmsadmin_extsearch.tpl' => 'd3/extsearch/Application/views/tpl/d3_ddoevisualcmsadmin_extsearch.tpl', ), 'events' => [ - 'onActivate' => '\D3\Extsearch\setup\Events::onActivate', - 'onDeactivate' => '\D3\Extsearch\setup\Events::onDeactivate', ], 'settings' => array( - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToFlow_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToMobile_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), - array( - 'group' => 'd3thememapping_module', - 'name' => 'd3custParentThemeMappedToAzure_'.$sModuleId, - 'type' => 'str', - 'value' => '' - ), ), 'blocks' => array( - array( - 'template' => 'page/search/search.tpl', - 'block' => 'search_results', - 'file' => 'Application/views/blocks/page/search/d3_inc_ext_search.tpl', - 'position' => 1, - ), - array( - 'template' => 'layout/base.tpl', - 'block' => 'head_css', - 'file' => 'Application/views/blocks/layout/d3_extsearch_css.tpl', - 'position' => 1, - ), - array( - 'template' => 'layout/base.tpl', - 'block' => 'base_js', - 'file' => 'Application/views/blocks/layout/d3_extsearch_js.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/header/search.tpl', - 'block' => 'widget_header_search_form', - 'file' => 'Application/views/blocks/widget/header/d3_extsearch_headersearch.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/header/search.tpl', - 'block' => 'header_search_field', - 'file' => 'Application/views/blocks/widget/header/d3_extsearch_searchfield.tpl', - 'position' => 1, - ), - array( - 'template' => 'page/list/list.tpl', - 'block' => 'page_list_listbody', - 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_noartfilters.tpl', - 'position' => 1, - ), - array( - 'template' => 'page/list/list.tpl', - 'block' => 'page_list_listhead', - 'file' => 'Application/views/blocks/page/list/d3extsearch_alist_filters.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/locator/attributes.tpl', - 'block' => 'widget_locator_attributes', - 'file' => 'Application/views/blocks/widget/locator/d3_list_disabledefaultfilters.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_infogrid.tpl', - 'block' => 'widget_product_listitem_infogrid_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listiteminfogrid_title.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_grid.tpl', - 'block' => 'widget_product_listitem_grid', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_title.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_grid.tpl', - 'block' => 'widget_product_listitem_infogrid_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemgrid_flowtitlebox.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_titlebox', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_flowtitlebox.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_selections', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_selections.tpl', - 'position' => 1, - ), - array( - 'template' => 'widget/product/listitem_line.tpl', - 'block' => 'widget_product_listitem_line_description', - 'file' => 'Application/views/blocks/widget/product/d3_extsearch_listitemline_description.tpl', - 'position' => 1, - ), - array( - 'template' => 'content_main.tpl', - 'block' => 'admin_content_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_content_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'attribute_main.tpl', - 'block' => 'admin_attribute_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_attribute_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'include/category_main_form.tpl', - 'block' => 'admin_category_main_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_category_main.tpl', - 'position' => 1, - ), - array( - 'template' => 'article_extend.tpl', - 'block' => 'admin_article_extend_form', - 'file' => 'Application/views/admin/blocks/d3_extsearch_article_extend.tpl', - 'position' => 1, - ), ), 'd3FileRegister' => array( - 'd3/extsearch/IntelliSenseHelper.php', - 'd3/extsearch/metadata.php', - 'd3/extsearch/core/smarty/plugins/function.d3_extsearch_highlight.php', - 'd3/extsearch/Application/Model/d3_phonetic_de.php', - 'd3/extsearch/Application/Model/d3_phonetic_de_voc.php', - 'd3/extsearch/public/d3_extsearch_response.php', - 'd3/extsearch/Application/translations/de/d3_extsearch_lang.php', - 'd3/extsearch/Application/translations/en/d3_extsearch_lang.php', - 'd3/extsearch/Application/views/admin/de/d3_extsearch_lang.php', - 'd3/extsearch/Application/views/admin/de/module_options.php', - 'd3/extsearch/Application/views/admin/en/d3_extsearch_lang.php', - 'd3/extsearch/Application/views/admin/en/module_options.php', - 'd3/extsearch/setup/d3_extsearch_semanticstructure.php', - 'd3/extsearch/setup/d3_extsearch_semantic_synset.php', - 'd3/extsearch/setup/d3_extsearch_semantic_term.php', - 'd3/extsearch/setup/d3_extsearch_statisticlog.php', - - 'd3/extsearch/Application/Controller/d3_extsearch_response.php', - 'd3/extsearch/Application/Controller/d3_xlist_extsearch.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_navigation.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_list.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_main.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_licence.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchsyneditor.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchsyneditor_list.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchlog.php', - 'd3/extsearch/Application/Controller/Admin/Reports/d3_extsearch_report_hitless.php', - 'd3/extsearch/Application/Controller/Admin/Reports/d3_extsearch_report_base.php', - 'd3/extsearch/Application/Controller/Admin/Reports/d3_extsearch_report_mostsearches.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchlog_list.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchsyneditor_manage.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchstat.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchstat_list.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_plugins.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_quicksearch.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearchsyneditor_main.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch_statistik.php', - 'd3/extsearch/Application/Controller/Admin/d3_cfg_extsearch.php', - 'd3/extsearch/Application/Model/d3_extsearch_statisticlog.php', - 'd3/extsearch/Application/Model/d3_oxutils_extsearch.php', - 'd3/extsearch/Application/Model/d3_semantic.php', - 'd3/extsearch/Application/Model/d3_search.php', - 'd3/extsearch/Application/Model/d3_extsearch_term.php', - 'd3/extsearch/Application/Model/d3_extsearch_synset.php', - 'd3/extsearch/Application/Model/d3_search_generator.php', - 'd3/extsearch/Application/Model/Filters/d3Filter.php', - 'd3/extsearch/Application/Model/Filters/d3FieldIsFilter.php', - 'd3/extsearch/Application/Model/Filters/d3VendorFilter.php', - 'd3/extsearch/Application/Model/Filters/d3FilterList.php', - 'd3/extsearch/Application/Model/Filters/d3IndexFilter.php', - 'd3/extsearch/Application/Model/Filters/d3AttributeFilter.php', - 'd3/extsearch/Application/Model/Filters/d3ManufacturerFilter.php', - 'd3/extsearch/Application/Model/Filters/d3CategoryFilter.php', - 'd3/extsearch/Application/Model/Filters/d3FieldLikeFilter.php', - 'd3/extsearch/Application/Model/Filters/d3PriceFilter.php', - 'd3/extsearch/Application/Model/Filters/d3FilterInterface.php', - 'd3/extsearch/setup/d3_extsearch_update.php', - 'd3/extsearch/Core/d3_extsearch_conf.php', - - 'd3/extsearch/Modules/Application/Component/d3_oxcmp_basket_extsearch.php', - 'd3/extsearch/Modules/Application/Component/d3_oxcmp_utils_extsearch.php', - 'd3/extsearch/Modules/Application/Component/d3_oxwarticledetails_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_manufacturerlist_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_vendorlist_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_oxlocator_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_alist_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_details_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_rss_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/Admin/d3_article_list_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/Admin/d3_ddoevisualcmsadmin_extsearch.php', - 'd3/extsearch/Modules/Application/Controller/d3_ext_search.php', - 'd3/extsearch/Modules/Application/Model/d3_oxsearch_extsearch.php', - 'd3/extsearch/Modules/Application/Model/d3_oxarticlelist_extsearch.php', - 'd3/extsearch/Modules/Application/Model/d3_oxarticle_phonetic.php', - 'd3/extsearch/Modules/Application/Model/d3_oxrssfeed_extsearch.php', - 'd3/extsearch/Modules/Core/d3_oxutilsview_extsearch.php', - - 'd3/extsearch/setup/Events.php', ), 'd3SetupClasses' => array( - ModuleSetup\d3_extsearch_update::class, ), ); -if (class_exists(VisualCMSAdmin::class)) { - $aModule['extend'][VisualCmsAdmin::class] = \D3\Extsearch\Modules\Application\Controller\Admin\d3_ddoevisualcmsadmin_extsearch::class; -} - -if (class_exists(OeStatistics_Report_Base::class)) { - $aModule['controllers']['d3_extsearch_report_base'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_base::class; - $aModule['controllers']['d3_extsearch_report_hitless'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_hitless::class; - $aModule['controllers']['d3_extsearch_report_mostsearches'] = \D3\Extsearch\Application\Controller\Admin\Reports\d3_extsearch_report_mostsearches::class; -} +// CREATE TABLE `d3totp` ( +// `OXID` CHAR(32) NOT NULL, +// `OXUSERID` CHAR(32) NOT NULL, +// `USETOTP` TINYINT(1) NOT NULL DEFAULT '0', +// `SEED` VARCHAR(100) NOT NULL DEFAULT '0', +// PRIMARY KEY (`OXID`), +// UNIQUE INDEX `Schlüssel 2` (`OXUSERID`) +//) +//ENGINE=InnoDB +//; \ No newline at end of file