/hairu

Flexible login/logout form based on Extbase/Fluid

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

Hairu CI

Flexible login/logout form based on Extbase/Fluid to replace the felogin extension shipped with TYPO3 CMS.

入る (hairu, Japanese) means "enter"

Installation

This extension is installable from various sources:

  1. Via Composer:

     composer require pagemachine/hairu
    
  2. From the TYPO3 Extension Repository

  3. From Github

After installation two new content elements Authentication form and Password edit form will be available in the Form elements section. Make sure to also include the static template.

Configuration

After including the static template a few options will be available in the Template Constant Editor for customization.

Make sure you set at least the Default storage PID to the page where your frontend user records are stored.

You can also use the stdWrap property on any settings value for custom processing. Example for easy translation of the password reset mail subject:

plugin.tx_hairu {
  settings {
    passwordReset {
      mail {
        subject.stdWrap.data = LLL:.../locallang.xlf:passwordReset.mail.subject
      }
    }
  }
}

Password validation

The validation rules applied within the password reset and update process can be customized freely through TypoScript. Example from the default configuration:

plugin.tx_hairu {
  // ...
  mvc.validation {
    // Validation of Authentication controller action arguments
    Authentication {
      // ...
      completePasswordReset {
        password {
          1 {
            type = StringLength
            options {
              minimum = 5
            }
          }
        }
      }
    }

    Password {
      updatePassword {
        password {
          1 {
            type = StringLength
            options {
              minimum = 5
            }
          }
        }
      }
    }
  }
}

You can use any validator type as long as Extbase can resolve it. In the example the builtin StringLength validator is set with a minimum length of 5.

The following formats for the validator type are supported:

  • Extbase builtin validators: StringLength (resolves to TYPO3\CMS\Extbase\Validation\Validator\StringLengthValidator)
  • Fully qualified class name: Vendor\Package\Validation\Validator\CustomValidator
  • Shorthand syntax: Vendor.Package:CustomValidator (resolves to Vendor\Package\Validation\Validator\CustomValidator)

Issues

Found a bug? Need a feature? Let us know through our issue tracker.

Testing

All tests can be executed with the shipped Docker Compose definition:

docker-compose run --rm app composer build

Credits

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY