protected static function passwordHasExpired( $user )
    {
        $userID = $user->attribute( 'contentobject_id' );

        // Password expired
        eZDebugSetting::writeDebug( 'kernel-user', $user, 'user password expired' );

        // Failed login attempts should be logged
        $userIDAudit = isset( $userID ) ? $userID : 'null';
        $loginEscaped = eZDB::instance()->escapeString( $user->attribute( 'login' ) );
        eZAudit::writeAudit( 'user-failed-login', array( 'User id' => $userIDAudit,
                                                         'User login' => $loginEscaped,
                                                         'Comment' => 'Failed login attempt: Password Expired. eZPaExUser::loginUser()' ) );

         // Redirect user to password change form
         self::redirectToChangePasswordForm( $userID );
    }