The demo plugin allow to setup an i-MSCP demo server in few minutes. It allow to:
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.
If an user account has the protected option set to TRUE (as above), it will be protected against deletion, and password modification.
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 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' ) ...
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 gui/plugins/Demo directory and is named config.php.
To activate the plugin, you must in order:
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.
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.
Copyright (C) 2010-2014 by Laurent Declercq [email protected] 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.