* @var Array applications (each element is an instance of ApplicationConfiguration)
*/
public$applications=[];
/**
* @var Array authentication methods for this workspace (each element is an instance of AuthenticationMethod)
*/
public$authenticationMethods=[];
/**
* @var Array disclaimers (each element a string)
*/
public$disclaimers=[];
/**
* @var Array collections (each key a string to the collection name, each value a string to the collection document type)
*/
public$collections=[];
/**
* Determines if internal Obsidian Workspaces authentication can be used to login on this workspace URL
*
* @return boolean True if an user not logged in Obsidian Workspaces going to a workspace URL should be offered to login through Obsidian ; otherwise, false.
*/
public$allowInternalAuthentication=true;
/**
* Get applications controllers binds for this workspace
*/
publicfunctiongetControllersBinds(){
$controllers=[];
foreach($this->applicationsas$application){
$controllers[$application->bind]=$application;
}
return$controllers;
}
/**
* Determines if the URL fragment matches a controller binded to it.
*
* @param ApplicationConfiguration $applicationConfiguration The application configuration
* @return boolean true if the URL fragment matches an application controller's bind
trigger_error("Application controller doesn't exist: $controllerClass. If you've just added application code, update includes/autoload.php file to register your new classes.",E_USER_WARNING);
thrownewException("Authentication method doesn't exist: $class. If you've just added authentication code, update includes/autoload.php file to register your new classes.");
thrownewException("CollectionDocument children class doesn't exist: $type. If you've just added authentication code, update includes/autoload.php file to register your new classes.");
}
}else{
$type=null;
}
$instance->collections[$name]=$type;
}
}
return$instance;
}
/**
* Gets the full name of a collection, with the workspace prefix