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 [2013/11/28 12:15] nuxwin |
plugins:demo [2014/02/23 09:34] nuxwin [Configuration file sample] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | =====i-MSCP Demo Plugin ===== | + | =====Demo Plugin===== |
- | + | ||
- | ====== Version Info ====== | + | |
- | ^Plugin Version|0.0.10| | + | |
- | ^Author|Laurent Declercq <[email protected]>| | + | |
- | ^License|GPLv2| | + | |
- | ^i-MSCP target versions|>= 1.1.0-rc4.7| | + | |
- | ^Last Update|2013-11-18| | + | |
======Introduction====== | ======Introduction====== | ||
- | The demo plugin for i-MSCP allow to setup an i-MSCP demo server in few minutes. | + | The demo plugin allow to setup an i-MSCP demo server in few minutes. |
It allow to: | It allow to: | ||
Line 17: | Line 10: | ||
- Provide an actions list that must be disabled | - Provide an actions list that must be disabled | ||
- | =====I. Plugin configuration===== | + | =====Plugin configuration===== |
- | ====A. Modal dialog box on login page==== | + | ====Modal dialog box on login page==== |
- | 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//). | + | The dialog box is only shown 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 new 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> | + | |
- | ... | + | ... |
- | 'user_accounts' => array( | + | 'user_accounts' => array( |
- | array( | + | array( |
- | 'label' => 'Administrator 1', | + | 'label' => 'Administrator 1', |
- | 'username' => 'admin1', | + | 'username' => 'admin1', |
- | 'password' => 'admin1', | + | 'password' => 'admin1', |
- | 'protected' => true | + | 'protected' => true |
- | ) | + | ) |
- | ) | + | ) |
- | ... | + | ... |
- | </code> | + | |
**Note:** User accounts are shown 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)==== | + | ====Protection against deletion and password modification (Demo users)==== |
- | If an user account has the protected option set to TRUE (as above), it will be protected against deletion, and password modification. | + | If an user account has the protected option set to TRUE (//as above//), it will be protected against deletion, and password modification. |
- | ====C. Disabled actions==== | + | ====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: | ||
- | <code php> | + | ... |
- | ... | + | 'disabled_actions' => array( |
- | 'disabled_actions' => array( | + | 'onBeforeAddFtp', |
- | 'onBeforeAddFtp', | + | 'onBeforeEditFtp', |
- | 'onBeforeEditFtp', | + | 'onBeforeDeleteFtp', |
- | 'onBeforeDeleteFtp', | + | 'onBeforeAddSqlUser', |
- | 'onBeforeAddSqlUser', | + | 'onBeforeEditSqlUser', |
- | 'onBeforeEditSqlUser', | + | 'onBeforeDeleteSqlUser', |
- | 'onBeforeDeleteSqlUser', | + | 'onBeforeAddSqlDb', |
- | 'onBeforeAddSqlDb', | + | 'onBeforeDeleteSqlDb' |
- | 'onBeforeDeleteSqlDb' | + | ) |
- | ) | + | ... |
- | ... | + | |
- | </code> | + | |
- | ====D. Configuration file sample==== | ||
- | A configuration file for the demo plugin can be: | + | ====Configuration file sample==== |
- | <code php> | + | A configuration file for the demo plugin can be: |
- | <?php | + | |
- | return array( | + | |
- | /* | + | |
- | 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. | + | |
- | */ | + | |
- | 'user_accounts' => array( | + | |
- | array( | + | |
- | 'label' => 'Administrator 1', | + | |
- | 'username' => 'admin1', | + | |
- | 'password' => 'admin1', | + | |
- | 'protected' => true | + | |
- | ), | + | |
- | array( | + | |
- | 'label' => 'Reseller 1', | + | |
- | 'username' => 'reseller1', | + | |
- | 'password' => 'reseller1', | + | |
- | 'protected' => true | + | |
- | ) | + | |
- | ), | + | |
- | /* | + | // Configuration file sample for the demo plugin |
- | List of actions that must be totally disabled. Each action must be prefixed by 'onBefore' | + | |
- | */ | + | return array( |
- | 'disabled_actions' => array( | + | // List of user accounts that will be available via select box on login page. If an user account is protected, it |
- | 'onBeforeAddFtp', | + | // will be imposible to remove it. Also, its password will be protected against modification. |
- | 'onBeforeEditFtp', | + | 'user_accounts' => array( |
- | 'onBeforeDeleteFtp', | + | array( |
- | 'onBeforeAddSqlUser', | + | 'label' => 'Administrator 1', |
- | 'onBeforeEditSqlUser', | + | 'username' => 'admin1', |
- | 'onBeforeDeleteSqlUser', | + | 'password' => 'admin1', |
- | 'onBeforeAddSqlDb', | + | 'protected' => true |
- | 'onBeforeDeleteSqlDb' | + | ), |
- | ) | + | array( |
- | ); | + | 'label' => 'Administrator 2', |
- | </code> | + | 'username' => 'admin2', |
+ | 'password' => 'admin2', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Administrator 3', | ||
+ | 'username' => 'admin3', | ||
+ | 'password' => 'admin3', | ||
+ | 'protected' => true | ||
+ | ), | ||
+ | array( | ||
+ | 'label' => 'Reseller 1', | ||
+ | 'username' => '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 | ||
+ | ) | ||
+ | ), | ||
+ | |||
+ | // 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( | ||
+ | 'onBeforeEditAdminGeneralSettings', | ||
+ | 'onBeforeAddUser', | ||
+ | 'onBeforeEditUser', | ||
+ | 'onBeforeDeleteUser', | ||
+ | 'onBeforeDeleteCustomer', | ||
+ | 'onBeforeAddFtp', | ||
+ | 'onBeforeEditFtp', | ||
+ | 'onBeforeDeleteFtp', | ||
+ | 'onBeforeAddSqlUser', | ||
+ | 'onBeforeEditSqlUser', | ||
+ | 'onBeforeDeleteSqlUser', | ||
+ | 'onBeforeAddSqlDb', | ||
+ | 'onBeforeDeleteSqlDb', | ||
+ | 'onBeforeUpdatePluginList', | ||
+ | 'onBeforeInstallPlugin', | ||
+ | 'onBeforeUninstallPlugin', | ||
+ | 'onBeforeEnablePlugin', | ||
+ | 'onBeforeDisablePlugin', | ||
+ | 'onBeforeUpdatePlugin', | ||
+ | 'onBeforeDeletePlugin', | ||
+ | 'onBeforeProtectPlugin', | ||
+ | 'onBeforeAddDomain', | ||
+ | 'onBeforeEditDomain', | ||
+ | 'onBeforeAddSubdomain', | ||
+ | 'onBeforeEditSubdomain', | ||
+ | 'onBeforeDeleteSubdomain', | ||
+ | 'onBeforeAddDomainAlias', | ||
+ | 'onBeforeEditDomainAlias', | ||
+ | 'onBeforeDeleteDomainAlias', | ||
+ | 'onBeforeAddMail', | ||
+ | 'onBeforeEditMail', | ||
+ | 'onBeforeDeleteMail', | ||
+ | 'onBeforeAddExternalMailServer', | ||
+ | 'onBeforeChangeDomainStatus' | ||
+ | ) | ||
+ | ); | ||
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]]. | 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===== | + | =====Plugin activation===== |
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. | 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. | ||
Line 116: | Line 174: | ||
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. | 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===== | + | =====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. | 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. |