Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. The name of the Plugin must match the format FooAuthenticator.
  2. The Plugin must implement a model FooAuthenticator, and a corresponding Controller. (These are in addition to the other models and controllers required for Plugins.)
    1. This Model should extend AuthenticatorBackend, which defines some standard interfaces and provides some behind the scenes common functionality.
    2. The Model should set a public variable $multiple that is true is the Authenticator supports multiple values, or false otherwise.
    3. The Controller should to extend SAuthController ("Standard Authenticator" Controller), which provides some common functionality.
    4. When a new Authenticator Backend is instantiated, a skeletal row in the corresponding co_foo_authenticators table will be created. There is no add operation or view required. The skeletal row will point to the parent Authenticator Model.
    5. When an Authenticator Backend is edited, the entry point to the Authenticator Plugin will be foo_authenticator/foo_authenticators/edit/#. This will be called immediately after the Authenticator Backend is first instantiated.
    6. Authenticator Plugins that support Authenticator Reset should set $enableSSR = true in the model.
  3. Note Authenticator has a hasOne (ie: 1 to 1) relationship with FooAuthenticator.
  4. The table cm_foo_authenticators should include a foreign key to cm_authenticators:id.
    1. Other tables used by the plugin should reference cm_foo_authenticators:id.
  5. The Plugin must implement several functions, which are defined in Model/AuthenticatorBackend.php. More details are in the next section.
  6. The Plugin must implement a model for the Authenticator itself, Model/Foo.php. For example, for the PasswordAuthenticator Plugin, this Model is Password and is defined in Password.php. The Plugin must also implement a corresponding Controller, Controller/FoosController.php. This Controller should extend SAMController.php ("Standard Authenticator Model" Controller).
    1. (warning) The Authenticator's model should not actsAs Provisioner. SAMController will handle triggering provisioning under appropriate circumstances.
    2. Data from Authenticator models following these conventions and with a relation to CoPerson (ie: there is a co_person_id foreign key) will automatically be made available to Provisioner plugins.

...