Store plain text passwords for users
IMPORTANT NOTE We DO NOT recommend to store plain text passwords. It is very dangerous and almost illegal nowadays. Use this tutorial at your own risk.
Create field in aMember CP -> Configuration -> Add User Fields (New Field):
- Field Name: plain_password
- Field Title: Plain Text Password
- Field Type: SQL
- SQL Field Type: String
Add this code to site.php file:
Am_Di::getInstance()->hook->add(Am_Event::SET_PASSWORD, function (Am_Event_SetPassword $e) {
$pass = $e->getPassword();
$user = $e->getUser();
if($pass){
$user->updateQuick('plain_password', $pass);
}
});
Each time when user's password will be updated aMember will copy it to plain_password field. Then you can use %user.plain_password% placeholder in all emails templates when %user% placeholder is available.
Optionally you can add the following code snippet to site.php file:
Am_Di::getInstance()->hook->add('gridUserInitForm', function (Am_Event_Grid $e) {
if ($e->getGrid()->getRecord()->isLoaded() && !empty($e->getGrid()->getRecord()->plain_password)) {
$p = Am_Html::escape($e->getGrid()->getRecord()->plain_password);
$e->getGrid()->getForm()
->addScript()
->setScript(<<<CUT
jQuery(function(){
jQuery('[name=_pass]').closest('.am-element').prepend('<span id="plain-password">{$p} </span>');
jQuery('.am-change-pass').click(function(){jQuery('#plain-password').remove()});
jQuery('[name=plain_password]').closest('.row').hide();
});
CUT
);
}
});
The above code will show user password in his account within admin interface: