Note: This documentation is still in progress, not reviewed properly, and might contain some errors or outdated images. It's intended for the upcoming 4.0.0 release, so configuration settings might be different from previous versions.

Password Policies

Poweradmin allows you to enforce password policies to enhance the security of user accounts. All security configurations, including password policies, are now configured in a single config/settings.php file under the security section. This consolidates all security-related settings into one location for easier management.

Password Rules

  • enable_password_rules: Enable or disable password rules enforcement. Default: false.
  • min_length: Minimum length of the password. Default: 6.
  • require_uppercase: Require at least one uppercase letter. Default: true.
  • require_lowercase: Require at least one lowercase letter. Default: true.
  • require_numbers: Require at least one numeric digit. Default: true.
  • require_special: Require at least one special character. Default: false.
  • special_characters: List of allowed special characters. Default: !@#$%^&*()+-=[]{}|;:,.<>?.

Password Security Settings

The following additional security settings are available in the security section:

  • password_encryption: Choose the password hashing algorithm. Options: 'md5', 'md5salt', 'bcrypt', 'argon2i', ' argon2id'. Default: bcrypt.
  • password_cost: Cost factor for bcrypt algorithm. Default: 12.

Password Expiration

Note: The following settings are not implemented yet.

  • enable_expiration: Enable or disable password expiration. Default: false.
  • max_age_days: Maximum age of the password in days before it expires. Default: 90.

Password Reuse Prevention

Note: The following settings are not implemented yet.

  • enable_reuse_prevention: Enable or disable prevention of password reuse. Default: false.
  • prevent_reuse: Number of previous passwords to check against for reuse. Default: 5.

Example Configuration

To enable password rules with custom settings, add the following configuration to your config/settings.php:

<?php

return [
    'security' => [
        'password_encryption' => 'bcrypt',
        'password_cost' => 12,
        'password_policy' => [
            'enable_password_rules' => true,
            'min_length' => 8,
            'require_special' => true,
        ],
    ],
];

When enable_password_rules is set to true, passwords will be validated according to the configured rules. In this example, passwords must be at least 8 characters long and include special characters, along with the default requirements for uppercase letters, lowercase letters, and numbers.