965 lines
14 KiB
PHP
Executable file
965 lines
14 KiB
PHP
Executable file
<?php
|
||
/**
|
||
* File containing the identity Class.
|
||
*
|
||
* @version 1.0 Initialisation of this file
|
||
* @since 1.0 Core application's file
|
||
*
|
||
* @author Eole 'eoledev at outlook . fr'
|
||
*
|
||
* @todo Complete the functions and finish the descriptions
|
||
*/
|
||
use OpenStack\Common\Error;
|
||
|
||
/**
|
||
* Identity Class of the back-end application
|
||
*
|
||
* This class allow the communication between the front-end application and
|
||
* the library which allow to send requests to an Openstack instance.
|
||
*
|
||
*/
|
||
class identity implements Core{
|
||
|
||
/** @var App $app protected, contains the main app object */
|
||
protected $app;
|
||
|
||
/** @var OpenStack\Identity $libClass protected, contains the library Identity object */
|
||
protected $libClass;
|
||
|
||
/** @var array $actions protected, contains the functions which can be call by the front-end */
|
||
protected $actions = array();
|
||
|
||
/**
|
||
* identity constructor
|
||
*
|
||
* @param App $app the main app object
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return identity
|
||
*/
|
||
public function __construct($app){
|
||
|
||
$this->app = $app;
|
||
$this->libClass = $app->getLibClass("Identity");
|
||
|
||
}
|
||
|
||
$credentials = array();
|
||
|
||
/**
|
||
* Add a credential for the given user/project.
|
||
*
|
||
* Create a secret/access pair for use with ec2 style auth.
|
||
* This operation will generates a new set of credentials that map the user/project pair.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$credentials["addCredential"] = function(){
|
||
|
||
$blob = $this->app->getPostParam("blob");
|
||
$projectId = $this->app->getPostParam("projectId");
|
||
$type = $this->app->getPostParam("type");
|
||
$userId = $this->app->getPostParam("userId");
|
||
|
||
if(!isset($blob) || !isset($projectId) || !isset($type) || !isset($userId)){
|
||
$this->app->setOutput("Error", "Parameters Incorrect");
|
||
}
|
||
|
||
try{
|
||
|
||
$opt = array('blob' => $blob, 'projectId' => $projectId, 'type' => $type, 'userId' => $userId);
|
||
$res = $this->libClass->createCredential($opt);
|
||
|
||
}catch(Exception $e){
|
||
|
||
}
|
||
|
||
]
|
||
|
||
}
|
||
|
||
/**
|
||
* List the credentials for a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$credentials["listCredentials"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve a user’s access/secret pair by the access key.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$credentials["showCredential"] = function(){
|
||
$credential = $identity->getCredential('credentialId');
|
||
$credential->retrieve();
|
||
|
||
}
|
||
|
||
/**
|
||
* Update a user’s access/secret pair.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$credentials["updateCredential"] = function(){
|
||
$credential = $identity->getCredential('credentialId');
|
||
|
||
$credential->type = 'foo';
|
||
$credential->blob = 'bar';
|
||
|
||
$credential->update();
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a user’s access/secret pair.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$credentials["deleteCredential"] = function(){
|
||
$credential = $identity->getCredential('credentialId');
|
||
$credential->delete();
|
||
|
||
}
|
||
|
||
$domains = array();
|
||
|
||
/**
|
||
* Add a domain to an OpenStack instance.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["addDomain"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the different domain's list.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["listDomains"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the details of a given domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["showDomain"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Update the given domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["updateDomain"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete the given domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["deleteDomain"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the different roles of a given user in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["listRolesDomainUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Grant a role to a given user in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["grantRoleDomainUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Verify that a user has a given role in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["checkRoleDomainUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a role for a given user in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["revokeRoleDomainUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the roles of a given group in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["listRolesDomainGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Add a role to a given group in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["grantRoleDomainGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Verify that a role is associated with a given group in a domain.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["checkRoleDomainGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a role for a given group in a domain.
|
||
*
|
||
* A *description*, that can span multiple lines, to go _in-depth_ into the details of this element
|
||
* and to provide some background information or textual references.
|
||
*
|
||
* @param string $myArgument With a *description* of this argument, these may also
|
||
* span multiple lines.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$domains["revokeRoleDomainGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$endpoints = array();
|
||
|
||
/**
|
||
* Add an endpoint to the Openstack instance
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$endpoints["addEndpoint"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the endpoint for the given id
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$endpoints["getEndpoint"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the list of the different endpoints
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$endpoints["listEndpoints"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Update a given endpoint
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$endpoints["updateEndpoint"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a given endpoint
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$endpoints["deleteEndpoint"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$groups = array();
|
||
|
||
/**
|
||
* Add a group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["addGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the group's list.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["listGroups"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the details of a given group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["showGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Update a given group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["updateGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete the given group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["deleteGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the users of a given group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["listGroupUsers"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Add a user to a group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["addGroupUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Remove a user from a given group.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["removeGroupUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Check if a group contains a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$groups["checkGroupUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$policies = array();
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$policies["addPolicies"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$policies["listPolicies"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$policies["showPolicie"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$policies["updatePolicies"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$policies["deletePolicies"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$projects = array();
|
||
|
||
/**
|
||
* Add a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["addProject"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the different projects.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["listProjects"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the details of a given project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["showProject"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Update a given project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["updateProject"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a given project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["deleteProject"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* List the roles of a given user in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["listRolesProjectUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Grant a role to an user in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["grantRoleProjectUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Check if a given user has a role in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["checkRoleProjectUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a role for a given user in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["revokeRoleProjectUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* List the roles of a group in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["listRolesProjectGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Add a role to a group in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["grantRoleProjectGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Check if a group has a given role in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["checkRoleProjectGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a role for a group in a project.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$projects["revokeRoleProjectGroup"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$roles = array();
|
||
|
||
/**
|
||
* Add a role.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$roles["addRole"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* List the different roles
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$roles["listRoles"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* @todo
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$roles["listRoleAssignements"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$services = array();
|
||
|
||
/**
|
||
* Add a service.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$services["addService"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the different services.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$services["listServices"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the details for a given service.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$services["showService"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a given service.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$services["deleteService"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$tokens = array();
|
||
|
||
/**
|
||
* Generate a new token for a given user id.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["genTokenUserID"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Generate a new token for a given user name.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["genTokenUserName"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Generate a new token from another token ID.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["geneTokenID"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Generate a new token scoped by a project ID.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["genTokenScopedProjectID"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Generate a new token scoped by a project name.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["genTokenScopedProjectName"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Check if a token is validate.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["validateToken"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a given token.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$tokens["revokeToken"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$users = array();
|
||
|
||
/**
|
||
* Add a new user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["addUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the different users.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["listUsers"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the details of a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["showUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Update a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["updateUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Delete a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["deleteUser"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the groups which contains a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["listUserGroups"] = function(){
|
||
|
||
|
||
}
|
||
|
||
/**
|
||
* Retrieve the projects which contains a given user.
|
||
*
|
||
* @throws [Type] [<description>]
|
||
*
|
||
* @return void
|
||
*/
|
||
$users["listUserProjects"] = function(){
|
||
|
||
|
||
}
|
||
|
||
$actions["Credentials"] = $credentials;
|
||
$actions["Domains"] = $domains;
|
||
$actions["Endpoints"] = $endpoints;
|
||
$actions["Groups"] = $groups;
|
||
$actions["Policies"] = $policies;
|
||
$actions["Projects"] = $projects;
|
||
$actions["Roles"] = $roles;
|
||
$actions["Services"] = $services;
|
||
$actions["Tokens"] = $tokens;
|
||
$actions["Users"] = $users;
|
||
}
|