64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
/*
|
|
* Plugin Name: Admin Useraccount Security
|
|
* Description: Met en place des règles de base afin de protéger les comptes administrateurs.
|
|
* Version: 1.1
|
|
* Author: Yann Gonidec
|
|
* Author URI:
|
|
*/
|
|
|
|
/** Removes the ability for non admin users to change/reset their passwords. */
|
|
class Password_Reset_Removed
|
|
{
|
|
|
|
function __construct()
|
|
{
|
|
add_filter( 'show_password_fields', array( $this, 'disable' ) );
|
|
add_filter( 'allow_password_reset', array( $this, 'disable' ) );
|
|
add_filter( 'gettext', array( $this, 'remove' ) );
|
|
}
|
|
|
|
function disable()
|
|
{
|
|
if ( is_admin() ) {
|
|
$userdata = wp_get_current_user();
|
|
$user = new WP_User($userdata->ID);
|
|
if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' )
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function remove($text)
|
|
{
|
|
return str_replace( array('Lost your password?', 'Lost your password'), '', trim($text, '?') );
|
|
}
|
|
}
|
|
|
|
$pass_reset_removed = new Password_Reset_Removed();
|
|
|
|
/** Supprime la class comment-author dans les commentaires pour masquer le login de l'administrateur */
|
|
function remove_comment_author_class( $classes ) {
|
|
foreach( $classes as $key => $class ) {
|
|
if(strstr($class, "comment-author-")) {
|
|
unset( $classes[$key]);
|
|
}
|
|
}
|
|
return $classes;
|
|
}
|
|
add_filter( 'comment_class' , 'remove_comment_author_class');
|
|
|
|
/** Renvoi un message d'erreur global au niveau du login de l'admin afin de ne pas savoir si c'est le login ou le pwd qui est faux */
|
|
function fn_login_errors(){
|
|
return 'Login ou mot de passe incorrect';
|
|
}
|
|
add_filter('login_errors', 'fn_login_errors');
|
|
// DEPRECATED -> add_filter('login_errors',create_function('$a', "return 'Login ou mot de passe incorrect';"));
|
|
|
|
/** Supprime la balise « generator » du flux rss.*/
|
|
add_filter('get_the_generator_rss2', '__return_false');
|
|
add_filter('get_the_generator_atom', '__return_false');
|
|
|
|
/** Masque la version de Wordpress dans les sources du site */
|
|
remove_action('wp_head', 'wp_generator');
|
|
?>
|