User Tools

Site Tools


plugins:demo

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:

  1. Display a dialog box on the login page to allow the users to choose the account they want use to login
  2. Protect some users accounts against deletion and password modification
  3. Provide an actions list that must be disabled

CONFIGURATION

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 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 gui/plugins/Demo directory and is named config.php.

ACTIVATION

To activate the plugin, you must in order:

  1. configure it by editing the plugins/Demo/config.php configuration file
  2. go to the plugin management interface
  3. cick on the Update Plugins button
  4. 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

/var/www/virtual/i-mscp.net/wiki/htdocs/data/pages/plugins/demo.txt · Last modified: 2014/02/23 09:44 by nuxwin