User Tools

Site Tools


plugins:demo

This is an old revision of the document!


Demo Plugin

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

Plugin 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.

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.

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.

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.

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