Version: current

# Package sapphire\security

## Classes summary

Authenticator | Abstract base class for an authentication method
BasicAuth | Provides an interface to HTTP basic authentication.
ChangePasswordForm | Standard Change Password Form
Group | A security group.
GroupCsvBulkLoader |
LoginAttempt | Record all login attempts through the `LoginForm` object. This behaviour is disabled by default.
LoginForm | Abstract base class for a login form
Member | The member class which represents the users of the system
Member_ChangePasswordEmail | Class used as template to send an email saying that the password has been changed
Member_ForgotPasswordEmail | Class used as template to send the forgot password email
Member_GroupSet | Special kind of `ComponentSet` that has special methods for manipulating a user's membership
Member_ProfileForm | Form for editing a member profile.
Member_SignupEmail | Class used as template to send an email to new members
Member_Validator | Member Validator
MemberAuthenticator | Authenticator for the default "member" method
MemberCsvBulkLoader | Imports member records, and checks/updates duplicates based on their 'Email' property.
MemberLoginForm | Log-in form for the "member" authentication method
MemberPassword | Keep track of users' previous passwords, so that we can check that new passwords aren't changed back to old ones.
NZGovtPasswordValidator | This `PasswordValidator` implements the NZ E-Government Guidelines for passwords
PasswordEncryptor | Allows pluggable password encryption. By default, this might be PHP's integrated sha1() function, but could also be more sophisticated to facilitate password migrations from other systems. Use `PasswordEncryptor::register()` to add new implementations.
PasswordEncryptor_LegacyPHPHash | Legacy implementation for SilverStripe 2.1 - 2.3, which had a design flaw in password hashing that caused the hashes to differ between architectures due to floating point precision problems in base_convert(). See http://open.silverstripe.org/ticket/3004
PasswordEncryptor_MySQLOldPassword | Uses MySQL's OLD_PASSWORD encyrption. Requires an active DB connection.
PasswordEncryptor_MySQLPassword | Uses MySQL's PASSWORD encryption. Requires an active DB connection.
PasswordEncryptor_None | Cleartext passwords (used in SilverStripe 2.1). Also used when Security::$encryptPasswords is set to FALSE. Not recommended.
PasswordEncryptor_PHPHash | This is the default class used for built-in hash types in PHP. Please note that the implemented algorithms depend on the PHP distribution and architecture.
PasswordValidator | This class represents a validator for member passwords.
Permission | Represents a permission assigned to a group.
Permission_Group | Permission_Group class
PermissionCheckboxSetField | Shows a categorized list of available permissions (through `Permission::get_codes()`). Permissions which are assigned to a given `Group` record (either directly, inherited from parent groups, or through a `PermissionRole`) will be checked automatically. All checkboxes for "inherited" permissions will be readonly.
PermissionCheckboxSetField_Readonly | Readonly version of a `PermissionCheckboxSetField` - uses the same structure, but has all checkboxes disabled.
PermissionRole | A PermissionRole represents a collection of permission codes that can be applied to groups.
PermissionRoleCode | A PermissionRoleCode represents a single permission code assigned to a `PermissionRole`.
Security | Implements a basic security model

## Interfaces summary

PermissionProvider | Used to let classes provide new permission codes. Every implementor of PermissionProvider is accessed and providePermissions() called to get the full list of permission codes.

## Exceptions summary

PasswordEncryptor_NotFoundException |

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -