This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
plugins:demo [2012/02/04 15:52] nuxwin Add author and license info |
plugins:demo [2014/02/01 18:44] nuxwin |
||
---|---|---|---|
Line 2: | Line 2: | ||
====== Version Info ====== | ====== Version Info ====== | ||
- | ^Plugin Version | 0.0.5| | + | ^Plugin Version|1.0.0| |
^Author|Laurent Declercq <[email protected]>| | ^Author|Laurent Declercq <[email protected]>| | ||
^License|GPLv2| | ^License|GPLv2| | ||
- | ^i-MSCP compatibility version | >= 1.0.2.0| | + | ^i-MSCP target versions|>= 1.1.0| |
- | ^Last Update|03.02.2012| | + | ^Last Update|2014-02-01| |
======Introduction====== | ======Introduction====== | ||
Line 21: | Line 21: | ||
====A. Modal dialog box on login page==== | ====A. Modal dialog box on login page==== | ||
- | The dialog box is only displayed if you provide a set of configuration that describes user accounts. The plugin configuration file format is a simple PHP associative array (//See the sample below//). | + | The dialog box is only displayed if you provide a set of configuration parameters that describe user accounts. The plugin configuration file contains a simple PHP associative array (//See the sample below//). |
- | To describe an user account, you must add a section like below in the configuration file: | + | To describe an user account, you must add a new section like below in the configuration file: |
<code php> | <code php> | ||
... | ... | ||
Line 37: | Line 37: | ||
</code> | </code> | ||
- | **Note:** User accounts are show in dialog box only if they exists in the i-MSCP database. | + | **Note:** User accounts are shown in dialog box only if they exists in the i-MSCP database. |
====B. Protection against deletion and password modification (Demo users)==== | ====B. Protection against deletion and password modification (Demo users)==== | ||
Line 45: | Line 45: | ||
====C. Disabled actions==== | ====C. Disabled actions==== | ||
- | The plugin allows to disable some actions such as '**addFtp**', '**EditFtp**', '**DeleteFtp**'. The action names are same as event names dispatched in i-MSCP code. Only the **onBefore*** actions are supported (since the others are not really relevant in the demo plugin context). You can see all integrated events by reading the [[https://github.com/i-MSCP/imscp/blob/master/gui/library/iMSCP/Events.php|iMSCP_Events]] class. | + | The plugin allows to disable some actions such as '**addFtp**', '**EditFtp**', '**DeleteFtp**'. The action names are same as event names dispatched in i-MSCP code. Only the **onBefore*** actions are supported since the others are not really relevant in the demo plugin context. You can see all integrated events by reading the [[https://github.com/i-MSCP/imscp/blob/master/gui/library/iMSCP/Events.php|iMSCP_Events]] class. |
To disable one or more actions, you must add a new section like below in the plugin configuration file: | To disable one or more actions, you must add a new section like below in the plugin configuration file: | ||
Line 64: | Line 64: | ||
</code> | </code> | ||
- | To resume, a configuration file for the demo plugin can be: | + | ====D. Configuration file sample==== |
+ | |||
+ | A configuration file for the demo plugin can be: | ||
<code php> | <code php> | ||
<?php | <?php | ||
+ | // Configuration file sample for the demo plugin | ||
+ | |||
return array( | return array( | ||
- | /* | + | // List of user accounts that will be available via select box on login page. If an user account is protected, it |
- | List of user accounts that will be available via select box on login page. If an user account is protected, it | + | // will be imposible to remove it. Also, its password will be protected against modification. |
- | will be imposible to remove it. Also, its password will be protected against modification. | + | |
- | */ | + | |
'user_accounts' => array( | 'user_accounts' => array( | ||
array( | array( | ||
Line 78: | Line 80: | ||
'username' => 'admin1', | 'username' => 'admin1', | ||
'password' => 'admin1', | 'password' => 'admin1', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Administrator 2', | ||
+ | 'username' => 'admin2', | ||
+ | 'password' => 'admin2', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Administrator 3', | ||
+ | 'username' => 'admin3', | ||
+ | 'password' => 'admin3', | ||
'protected' => true | 'protected' => true | ||
), | ), | ||
Line 84: | Line 98: | ||
'username' => 'reseller1', | 'username' => 'reseller1', | ||
'password' => 'reseller1', | 'password' => 'reseller1', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Reseller 2', | ||
+ | 'username' => 'reseller2', | ||
+ | 'password' => 'reseller2', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Reseller 3', | ||
+ | 'username' => 'reseller3', | ||
+ | 'password' => 'reseller3', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Customer 1', | ||
+ | 'username' => 'domain1.tld', | ||
+ | 'password' => 'domain1', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Customer 2', | ||
+ | 'username' => 'domain2.tld', | ||
+ | 'password' => 'domain2', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Customer 3', | ||
+ | 'username' => 'domain3.tld', | ||
+ | 'password' => 'domain3', | ||
'protected' => true | 'protected' => true | ||
) | ) | ||
), | ), | ||
- | /* | + | // List of actions that must be totally disabled. Each action must be prefixed by 'onBefore' |
- | List of actions that must be totally disabled. Each action must be prefixed by 'onBefore' | + | // |
- | */ | + | // Important consideration: |
+ | // Even if you add the 'onBeforeDeactivatePlugin' in the list below, you'll still able to deactivate this plugin. | ||
+ | // The only way to protect this plugin against deactivation is to protect it using the plugin protection feature. | ||
'disabled_actions' => array( | 'disabled_actions' => array( | ||
+ | 'onBeforeEditAdminGeneralSettings', | ||
+ | 'onBeforeAddUser', | ||
+ | 'onBeforeEditUser', | ||
+ | 'onBeforeDeleteUser', | ||
+ | 'onBeforeDeleteCustomer', | ||
'onBeforeAddFtp', | 'onBeforeAddFtp', | ||
'onBeforeEditFtp', | 'onBeforeEditFtp', | ||
Line 99: | Line 150: | ||
'onBeforeDeleteSqlUser', | 'onBeforeDeleteSqlUser', | ||
'onBeforeAddSqlDb', | 'onBeforeAddSqlDb', | ||
- | 'onBeforeDeleteSqlDb' | + | 'onBeforeDeleteSqlDb', |
+ | 'onBeforeUpdatePluginList', | ||
+ | 'onBeforeInstallPlugin', | ||
+ | 'onBeforeUninstallPlugin', | ||
+ | 'onBeforeEnablePlugin', | ||
+ | 'onBeforeDisablePlugin', | ||
+ | 'onBeforeUpdatePlugin', | ||
+ | 'onBeforeDeletePlugin', | ||
+ | 'onBeforeProtectPlugin', | ||
+ | 'onBeforeAddDomain', | ||
+ | 'onBeforeEditDomain', | ||
+ | 'onBeforeAddSubdomain', | ||
+ | 'onBeforeEditSubdomain', | ||
+ | 'onBeforeDeleteSubdomain', | ||
+ | 'onBeforeAddDomainAlias', | ||
+ | 'onBeforeEditDomainAlias', | ||
+ | 'onBeforeDeleteDomainAlias', | ||
+ | 'onBeforeAddMail', | ||
+ | 'onBeforeEditMail', | ||
+ | 'onBeforeDeleteMail', | ||
+ | 'onBeforeAddExternalMailServer', | ||
+ | 'onBeforeChangeDomainStatus' | ||
) | ) | ||
); | ); | ||
</code> | </code> | ||
- | This file live in the [[https://github.com/i-MSCP/imscp/tree/master/gui/plugins/Demo|gui/plugins/Demo]] directory and is named [[https://github.com/i-MSCP/imscp/blob/master/gui/plugins/Demo/demo_config.php|demo_config.php]]. | + | This file live in the [[https://github.com/i-MSCP/imscp/tree/master/gui/plugins/Demo|gui/plugins/Demo]] directory and is named [[https://github.com/i-MSCP/imscp/blob/master/gui/plugins/Demo/config.php|config.php]]. |
=====II. Plugin activation===== | =====II. Plugin activation===== | ||
- | To activate the plugin, you must just configure it and edit the **/etc/imscp.conf** and set the '**DEMO_SERVER**' variable to **1**. | + | To activate the plugin, you must configure it and update the plugin list via the i-MSCP plugin management interface. Once it's done, you must activate it by clicking on the activate link into the plugin management interface. |
+ | |||
+ | **Important** | ||
+ | |||
+ | In production environment, this plugin must be protected against deactivation. For this, you must protect it by clicking on the **protect** link in the plugin management interface. | ||
+ | |||
+ | =====III. Plugin deactivation===== | ||
+ | |||
+ | First, if the plugin is protected, you must edit the **gui/data/persistent/protected_plugins.php** file to remove it from the list of protected plugins. After, you will be able to deactivate it by clicking on the **deactivate** link into the plugin management interface. | ||
Feel free to test it and report any bugs or suggestions for improvement. | Feel free to test it and report any bugs or suggestions for improvement. |