【问题标题】:TYPO3 7.6 Backend Hook: check if fe_users password was changedTYPO3 7.6 后端挂钩:检查 fe_users 密码是否已更改
【发布时间】:2017-03-14 08:17:12
【问题描述】:

是否有 TYPO3 后端挂钩来检查 fe_users 密码是否已更改?我试过这个:

public function processDatamap_preProcessFieldArray(array &$fieldArray, $table, $id, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {
    if ($table === "fe_users" && stripos($id, 'NEW') === false){
        $pw = $fieldArray['password'];
        die($pw);
    }
}

问题是,这总是返回一个密码,无论是新密码还是散列密码(如果它已经存在),所以我不知道它是否已更改字段。有没有办法检查更改的字段?

【问题讨论】:

  • 请更具体地说明“更改”的含义!从什么(早期值)改变?并在哪里改变?当您将 $id 与 'NEW' 进行比较时,我假设它是关于 fe_users 的新创建,但 fe_users 可以通过多种方式创建。从 BE 到 FE 中的不同扩展,每个 FE-Extension 都有很多选择。
  • 不,这不是关于新条目,而是当有人在后端编辑用户时 - 我想在保存后查看密码是否已更改。编辑是留下密码还是输入了新密码?

标签: php typo3 typo3-7.6.x


【解决方案1】:

似乎我找到了解决方案。不确定它是否是最好的,但到目前为止它有效。我意识到,processDatamap_preProcessFieldArray 是密码仍然以纯文本形式提供的地方,所以我需要使用它来使用注册表存储密码(后来它已经被散列,因此对我不可用)。

processDatamap_afterDatabaseOperations 中的 fieldArray 值仅在值更改时设置,因此通过检查密码密钥是否已设置,我知道密码最初是否已更改。

这就是我的解决方案的样子:

public function processDatamap_afterDatabaseOperations($status, $table, $id, $fieldArray, $pObj) {
    if ($table === "fe_users" && $status === "update" && isset($fieldArray['password'])) {
        //get the password
        $registry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Registry');
        $pw = $registry->get('be', 'lastPassword');

        //do whatever is necessary with the plain text password...

        //remove it
        $registry->remove('be', 'lastPassword');
    }
}

public function processDatamap_preProcessFieldArray(array &$fieldArray, $table, $id, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {
    if ($table === "fe_users" && stripos($id, 'NEW') === false){
        $pw = $fieldArray['password'];
        $registry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Registry');
        $registry->set('be', 'lastPassword', $pw);
    }
}

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多