=====Demo Plugin===== ======REQUIREMENTS====== * i-MSCP >= 1.1.0 ======INTRODUCTION====== The demo plugin allow to setup an i-MSCP demo server in few minutes. It allow to: - Display a dialog box on the login page to allow the users to choose the account they want use to login - Protect some users accounts against deletion and password modification - Provide an actions list that must be disabled =====CONFIGURATION===== ====Modal dialog box on login page==== 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: ... 'user_accounts' => array( array( 'label' => 'Administrator 1', 'username' => 'admin1', 'password' => 'admin1', 'protected' => true ) ) ... **Note:** User accounts are shown in dialog box only if they exists in the i-MSCP database. ====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. ====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. To disable one or more actions, you must add a new section like below in the plugin configuration file: ... 'disabled_actions' => array( 'onBeforeAddFtp', 'onBeforeEditFtp', 'onBeforeDeleteFtp', 'onBeforeAddSqlUser', 'onBeforeEditSqlUser', 'onBeforeDeleteSqlUser', 'onBeforeAddSqlDb', 'onBeforeDeleteSqlDb' ) ... ====Configuration file sample==== A configuration file for the demo plugin can be: // Configuration file sample for the demo plugin 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' => 'Administrator 2', '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]]. =====ACTIVATION===== To activate the plugin, you must in order: - configure it by editing the plugins/Demo/config.php configuration file - go to the plugin management interface - cick on the **Update Plugins** button - click on the activate icone. **Important** In production environment, this plugin must be protected against deactivation. For this, you must protect it by clicking on the **protect** icone in the plugin management interface. =====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** icone in the plugin management interface. =====LICENSE===== Copyright (C) 2010-2014 by Laurent Declercq l.declercq@nuxwin.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. =====AUTHORS===== * Laurent Declercq