Versions Compared

Key

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

...

  1. Create a Model whose name matches the name of the Plugin. In this example, the Model is created at app/Plugin/MyPlugin/Model/MyPlugin.php.
  2. Define $cmPluginType to indicate the type of the Plugin, from the following options:

    $cmPluginType

    Description

    Available SinceInstantiated?
    enroller
    Enrollment Flow Pluginv0.9.4No
    identifiervalidatorIdentifier Validation Pluginv1.1.0Optional
    ldapschemaLDAP Schema Pluginv1.1.0Yes, via LDAP schema configuration

    normalizer

    Normalization Plugin

    v0.9.2No
    orgidsourceOrganizational Identity Sources Pluginv1.1.0Yes

    provisioner

    Provisioning Plugin

    v0.8Yes

    other

    Any other type of Plugin

    v0.8No

    As of v1.1.0, $cmPluginType may also be an array.

...

Whether or not a Plugin menu is rendered is determined by the default permission as listed below.

Menu Location Key

Menu Location*

Default Permission

CO ID Inserted?

CO Person ID Inserted?

Available Since

cmp

Platform Menu

CMP Administrator

 

 

v0.8
cosCollaborations MenuMember of Any CO  v0.8

coconfig

CO Configuration Menu

CO Administrator

(tick)

 

v0.8

copeople

CO People Menu

Member of CO

(tick)

 

v0.8
cogroups*CO Groups MenuMember of CO(tick) v1.0.0

coperson

My Identities Menu

Member of CO

 

(tick)

...

v0.8
coservicesCO Services MenuMember of CO(tick) v1.1

...

.0


An example:

Code Block
/**
  * Expose menu items.
  *
  * @ since COmanage Registry v0.9.2
  * @ return Array with menu location type as key and array of labels, controllers, actions as values.
  */
public function cmPluginMenus() {
  return array(
    "coperson" => array(_txt('pl.dirviewer.viewmenu') =>
                      array('controller' => "dir_viewers",
                            'action'     => "view"))
  );
}

...