config.js

/**
 * @classdesc
 * Represents the current configuration of CompleteFTP server. Instances of this class should be obtained using 
 * {@link system.getConfig}.
 *
 * IMPORTANT! No changes are made to the configuration until {@link Config#applyChanges applyChanges} is called, 
 * otherwise you will wonder why nothing works.
 * 
 * @class
 * @hideconstructor
*/
Config = function () {
	/**
	* Provides the APIs for managing CompleteFTP users.
	* 
	* @type {UserManager}
	*/
	this.users = null;

	/**
	* Provides the APIs for managing CompleteFTP folders.
	* 
	* @type {FolderManager}
	*/
	this.folders = null;

	/**
	* Provides the APIs for managing CompleteFTP groups.
	* 
	* @type {GroupManager}
	*/
	this.groups = null;

	/**
	* A list of all CompleteFTP sites.
	* 
	* @type {Site[]}
	*/
	this.sites = null;

	/**
	* Contains information about the password-related settings that control how users' passwords are dealt with.
	* 
	* @type {PasswordPolicy}
	*/
	this.passwordPolicy = null;

	/**
	* Applies changes to the CompleteFTP server.
	* 
	* @method
	*/
	this.applyChanges = function () { }

}