You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:33:26 UTC
[39/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 +
Job Description for Admin Dashboard
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/UserStoreManager/TenantManager.php
----------------------------------------------------------------------
diff --git a/app/libraries/UserStoreManager/TenantManager.php b/app/libraries/UserStoreManager/TenantManager.php
new file mode 100755
index 0000000..1cdef20
--- /dev/null
+++ b/app/libraries/UserStoreManager/TenantManager.php
@@ -0,0 +1,138 @@
+<?php
+
+require_once 'TenantMgtAdmin.stub.php';
+
+/**
+ * TenantManager class
+ *
+ * This class provide an easy to use interface for
+ * WSO2 IS 5.0.0 TenantMgtAdmin service.
+ */
+class TenantManager {
+ /**
+ * @var TenantMgtAdminStub $serviceStub
+ * @access private
+ */
+ private $serviceStub;
+
+ public function __construct($server_url, $options) {
+ $this->serviceStub = new TenantMgtAdminStub(
+ $server_url . "TenantMgtAdminService?wsdl", $options
+ );
+ }
+
+ /**
+ * Function to get the soap client
+ *
+ * @return SoapClient
+ */
+ public function getSoapClient(){
+ return $this->serviceStub;
+ }
+
+ /**
+ * Method to retrieve all tenant information. Some tenant information
+ * such as admin name are not returned by wso2 IS
+ * @return mixed
+ */
+ public function retrieveTenants(){
+ $parameters = new retrieveTenants();
+ return $this->serviceStub->retrieveTenants($parameters)->return;
+ }
+
+ /**
+ * Method to get tenant information giving tenant domain
+ * @param $domain domain of the tenant
+ * @return mixed
+ */
+ public function getTenant($domain){
+ $parameters = new getTenant();
+ $parameters->tenantDomain = $domain;
+ return $this->serviceStub->getTenant($parameters)->return;
+ }
+
+ /**
+ * Method to create a new tenant
+ * @param $active whether tenant active or not
+ * @param $adminUsername
+ * @param $adminPassword
+ * @param $email
+ * @param $firstName Admin's first name
+ * @param $lastName Admin's last name
+ * @param $tenantDomain
+ */
+ public function addTenant($active, $adminUsername, $adminPassword, $email,
+ $firstName, $lastName, $tenantDomain){
+ $tenantInfoBean = new TenantInfoBean();
+ $tenantInfoBean->active = $active;
+ $tenantInfoBean->admin = $adminUsername;
+ $tenantInfoBean->adminPassword = $adminPassword;
+ $tenantInfoBean->email = $email;
+ $tenantInfoBean->firstName = $firstName;
+ $tenantInfoBean->lastName = $lastName;
+ $tenantInfoBean->tenantDomain = $tenantDomain;
+
+ $addTenant = new addTenant();
+ $addTenant->tenantInfoBean = $tenantInfoBean;
+ $this->serviceStub->addTenant($addTenant);
+ }
+
+ /**
+ * Method to remove an existing tenant giving tenant domain
+ * @param $tenantDomain
+ */
+ public function deleteTenant($tenantDomain){
+ $parameters = new deleteTenant();
+ $parameters->tenantDomain = $tenantDomain;
+ $this->serviceStub->deleteTenant($parameters);
+ }
+
+ /**
+ * Method to activate a tenant
+ * @param $tenantDomain
+ */
+ public function activateTenant($tenantDomain){
+ $parameters = new activateTenant();
+ $parameters->tenantDomain = $tenantDomain;
+ $this->serviceStub->activateTenant($parameters);
+ }
+
+ /**
+ * Method to deactivate a tenant
+ * @param $tenantDomain
+ */
+ public function deactivateTenant($tenantDomain){
+ $parameters = new deactivateTenant();
+ $parameters->tenantDomain = $tenantDomain;
+ $this->serviceStub->deactivateTenant($parameters);
+ }
+
+ /**
+ * Method to update an existing tenant
+ * @param $tenantId
+ * @param $active
+ * @param $adminUsername
+ * @param $adminPassword
+ * @param $email
+ * @param $firstName
+ * @param $lastName
+ * @param $tenantDomain
+ */
+ public function updateTenant($tenantId, $active, $adminUsername, $adminPassword, $email,
+ $firstName, $lastName, $tenantDomain){
+ $tenantInfoBean = new TenantInfoBean();
+ $tenantInfoBean->tenantId = $tenantId;
+ $tenantInfoBean->active = $active;
+ $tenantInfoBean->admin = $adminUsername;
+ $tenantInfoBean->adminPassword = $adminPassword;
+ $tenantInfoBean->email = $email;
+ $tenantInfoBean->firstName = $firstName;
+ $tenantInfoBean->lastName = $lastName;
+ $tenantInfoBean->tenantDomain = $tenantDomain;
+
+ $updateTenant = new updateTenant();
+ $updateTenant->tenantInfoBean = $tenantInfoBean;
+ $this->serviceStub->updateTenant($updateTenant);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/UserStoreManager/TenantMgtAdmin.stub.php
----------------------------------------------------------------------
diff --git a/app/libraries/UserStoreManager/TenantMgtAdmin.stub.php b/app/libraries/UserStoreManager/TenantMgtAdmin.stub.php
new file mode 100644
index 0000000..247687f
--- /dev/null
+++ b/app/libraries/UserStoreManager/TenantMgtAdmin.stub.php
@@ -0,0 +1,304 @@
+<?php
+/**
+ * This file contains the DTOs and the method stubs for
+ * WSO2 IS 5.0.0 TenantMgtAdmin service.
+ */
+class TenantMgtAdminServiceException {
+ public $TenantMgtAdminServiceException; // Exception
+}
+
+
+class deleteTenant {
+ public $tenantDomain; // string
+}
+
+class updateTenant {
+ public $tenantInfoBean; // TenantInfoBean
+}
+
+class addTenant {
+ public $tenantInfoBean; // TenantInfoBean
+}
+
+class addTenantResponse {
+ public $return; // string
+}
+
+class activateTenant {
+ public $tenantDomain; // string
+}
+
+class deactivateTenant {
+ public $tenantDomain; // string
+}
+
+class getTenant {
+ public $tenantDomain; // string
+}
+
+class getTenantResponse {
+ public $return; // TenantInfoBean
+}
+
+class retrievePaginatedTenants {
+ public $pageNumber; // int
+}
+
+class retrievePaginatedTenantsResponse {
+ public $return; // PaginatedTenantInfoBean
+}
+
+class retrieveTenants {
+}
+
+class retrieveTenantsResponse {
+ public $return; // TenantInfoBean
+}
+
+class retrievePartialSearchTenants {
+ public $domain; // string
+}
+
+class retrievePartialSearchTenantsResponse {
+ public $return; // TenantInfoBean
+}
+
+class addSkeletonTenant {
+ public $tenantInfoBean; // TenantInfoBean
+}
+
+class addSkeletonTenantResponse {
+ public $return; // string
+}
+
+class retrievePaginatedPartialSearchTenants {
+ public $domain; // string
+ public $pageNumber; // int
+}
+
+class retrievePaginatedPartialSearchTenantsResponse {
+ public $return; // PaginatedTenantInfoBean
+}
+
+class TenantInfoBean {
+ public $active; // boolean
+ public $admin; // string
+ public $adminPassword; // string
+ public $createdDate; // dateTime
+ public $email; // string
+ public $firstname; // string
+ public $lastname; // string
+ public $originatedService; // string
+ public $successKey; // string
+ public $tenantDomain; // string
+ public $tenantId; // int
+ public $usagePlan; // string
+}
+
+class PaginatedTenantInfoBean {
+ public $numberOfPages; // int
+ public $tenantInfoBeans; // TenantInfoBean
+}
+
+
+/**
+ * TenantMgtAdminStub class
+ *
+ *
+ *
+ * @author {author}
+ * @copyright {copyright}
+ * @package {package}
+ */
+class TenantMgtAdminStub extends SoapClient {
+
+ private static $classmap = array(
+ 'TenantMgtAdminServiceException' => 'TenantMgtAdminServiceException',
+ 'deleteTenant' => 'deleteTenant',
+ 'updateTenant' => 'updateTenant',
+ 'addTenant' => 'addTenant',
+ 'addTenantResponse' => 'addTenantResponse',
+ 'activateTenant' => 'activateTenant',
+ 'deactivateTenant' => 'deactivateTenant',
+ 'getTenant' => 'getTenant',
+ 'getTenantResponse' => 'getTenantResponse',
+ 'retrievePaginatedTenants' => 'retrievePaginatedTenants',
+ 'retrievePaginatedTenantsResponse' => 'retrievePaginatedTenantsResponse',
+ 'retrieveTenants' => 'retrieveTenants',
+ 'retrieveTenantsResponse' => 'retrieveTenantsResponse',
+ 'retrievePartialSearchTenants' => 'retrievePartialSearchTenants',
+ 'retrievePartialSearchTenantsResponse' => 'retrievePartialSearchTenantsResponse',
+ 'addSkeletonTenant' => 'addSkeletonTenant',
+ 'addSkeletonTenantResponse' => 'addSkeletonTenantResponse',
+ 'retrievePaginatedPartialSearchTenants' => 'retrievePaginatedPartialSearchTenants',
+ 'retrievePaginatedPartialSearchTenantsResponse' => 'retrievePaginatedPartialSearchTenantsResponse',
+ 'TenantInfoBean' => 'TenantInfoBean',
+ 'PaginatedTenantInfoBean' => 'PaginatedTenantInfoBean',
+ );
+
+ public function TenantMgtAdminStub($wsdl, $options = array()) {
+ foreach(self::$classmap as $key => $value) {
+ if(!isset($options['classmap'][$key])) {
+ $options['classmap'][$key] = $value;
+ }
+ }
+ parent::__construct($wsdl, $options);
+ }
+
+ /**
+ *
+ *
+ * @param retrieveTenants $parameters
+ * @return retrieveTenantsResponse
+ */
+ public function retrieveTenants(retrieveTenants $parameters) {
+ return $this->__soapCall('retrieveTenants', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param getTenant $parameters
+ * @return getTenantResponse
+ */
+ public function getTenant(getTenant $parameters) {
+ return $this->__soapCall('getTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param deactivateTenant $parameters
+ * @return void
+ */
+ public function deactivateTenant(deactivateTenant $parameters) {
+ return $this->__soapCall('deactivateTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param retrievePartialSearchTenants $parameters
+ * @return retrievePartialSearchTenantsResponse
+ */
+ public function retrievePartialSearchTenants(retrievePartialSearchTenants $parameters) {
+ return $this->__soapCall('retrievePartialSearchTenants', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param retrievePaginatedTenants $parameters
+ * @return retrievePaginatedTenantsResponse
+ */
+ public function retrievePaginatedTenants(retrievePaginatedTenants $parameters) {
+ return $this->__soapCall('retrievePaginatedTenants', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param updateTenant $parameters
+ * @return void
+ */
+ public function updateTenant(updateTenant $parameters) {
+ return $this->__soapCall('updateTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param addSkeletonTenant $parameters
+ * @return addSkeletonTenantResponse
+ */
+ public function addSkeletonTenant(addSkeletonTenant $parameters) {
+ return $this->__soapCall('addSkeletonTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param addTenant $parameters
+ * @return addTenantResponse
+ */
+ public function addTenant(addTenant $parameters) {
+ return $this->__soapCall('addTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param retrievePaginatedPartialSearchTenants $parameters
+ * @return retrievePaginatedPartialSearchTenantsResponse
+ */
+ public function retrievePaginatedPartialSearchTenants(retrievePaginatedPartialSearchTenants $parameters) {
+ return $this->__soapCall('retrievePaginatedPartialSearchTenants', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param activateTenant $parameters
+ * @return void
+ */
+ public function activateTenant(activateTenant $parameters) {
+ return $this->__soapCall('activateTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+ /**
+ *
+ *
+ * @param deleteTenant $parameters
+ * @return void
+ */
+ public function deleteTenant(deleteTenant $parameters) {
+ return $this->__soapCall('deleteTenant', array($parameters), array(
+ 'uri' => 'http://services.mgt.tenant.carbon.wso2.org',
+ 'soapaction' => ''
+ )
+ );
+ }
+
+}
+
+?>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/UserStoreManager/UserStoreManager.php
----------------------------------------------------------------------
diff --git a/app/libraries/UserStoreManager/UserStoreManager.php b/app/libraries/UserStoreManager/UserStoreManager.php
new file mode 100755
index 0000000..7da0ae0
--- /dev/null
+++ b/app/libraries/UserStoreManager/UserStoreManager.php
@@ -0,0 +1,202 @@
+<?php
+
+require_once 'UserStoreManager.stub.php';
+
+/**
+ * UsersStoreManager class
+ *
+ * This class provide an easy to use interface for
+ * WSO2 IS 5.0.0 RemoteUserStoreManager service.
+ */
+class UserStoreManager {
+ /**
+ * @var RemoteUserManagerStub $serviceStub
+ * @access private
+ */
+ private $serviceStub;
+
+ public function __construct($server_url, $options) {
+ $this->serviceStub = new UserStoreManagerStub(
+ $server_url . "RemoteUserStoreManagerService?wsdl", $options
+ );
+ }
+
+ /**
+ * Function to get the soap client
+ *
+ * @return SoapClient
+ */
+ public function getSoapClient(){
+ return $this->serviceStub;
+ }
+
+ /**
+ * Function to authenticate the user with RemoteUserStoreManager Service
+ * @param type $username
+ * @param type $password
+ */
+ public function authenticate($username, $password){
+ $parameters = new Authenticate();
+ $parameters->userName = $username;
+ $parameters->credential = $password;
+ return $this->serviceStub->authenticate($parameters)->return;
+ }
+
+ /**
+ * Function to add new user by providing username and password
+ *
+ * @param type $userName
+ * @param type $password
+ */
+ public function addUser($userName, $password, $fullName){
+ $parameters = new AddUser();
+ $parameters->userName = $userName;
+ $parameters->credential = $password;
+ $parameters->claims = null;
+ $parameters->profileName = $fullName;
+ $parameters->requirePasswordChange = false;
+ $parameters->roleList = null;
+ $this->serviceStub->addUser($parameters);
+ }
+ /**
+ * Function to delete existing user by providing the username.
+ *
+ * @param string $username
+ */
+ public function deleteUser($username){
+ $parameters = new DeleteUser();
+ $parameters->userName = $username;
+ $this->serviceStub->deleteUser($parameters);
+ }
+
+ /**
+ * Function to check whether a role is existing
+ *
+ * @param string $roleName
+ * @return IsExistingRoleResponse
+ */
+ public function isExistingRole( $roleName) {
+ $parameters = new IsExistingRole();
+ $parameters->roleName = $roleName;
+ $this->serviceStub->isExistingRole( $parameters)->return;
+ }
+ /**
+ * Function to add new role by providing the role name.
+ *
+ * @param string $roleName
+ */
+ public function addRole($roleName){
+ $paramerters = new AddRole();
+ $paramerters->roleName=$roleName;
+ $paramerters->userList=null;
+ $paramerters->permissions=null;
+ $this->serviceStub->addRole($paramerters);
+ }
+
+ /**
+ * Function to delete an existing role
+ *
+ * @param string $roleName
+ */
+ public function deleteRole($roleName){
+ $parameters = new DeleteRole();
+ $parameters->roleName = $roleName;
+ $this->serviceStub->deleteRole($parameters);
+ }
+
+ /**
+ * Function to get a list of users
+ *
+ * @return username list
+ */
+ public function listUsers(){
+ $parameters = new ListUsers();
+ $parameters->filter = "*";
+ $parameters->maxItemLimit = -1;
+
+ return $this->serviceStub->listUsers($parameters)->return;
+ }
+
+ /**
+ * Function get user list
+ *
+ * @param GetUserList $parameters
+ * @return GetUserListResponse
+ */
+ public function getUserList(){
+ $parameters = new GetUserList();
+ }
+
+
+ /**
+ * Function to check whether the given username already exists
+ *
+ * @param string $username
+ * @return boolean
+ */
+ public function isExistingUser($username) {
+ $parameters = new IsExistingUser();
+ $parameters->userName = $username;
+
+ return $this->serviceStub->isExistingUser($parameters)->return;
+ }
+
+ /**
+ * Function to get the list of all existing roles
+ *
+ * @return roles list
+ */
+ public function getRoleNames( $parameters = null){
+ $parameters = new GetRoleNames();
+ return $this->serviceStub->getRoleNames( $parameters)->return;
+ }
+
+ /**
+ * Function to get role of a user
+ *
+ * @return User Role
+ */
+ public function getRoleListOfUser( $username){
+ $parameters = new GetRoleListOfUser();
+ $parameters->userName = $username;
+ return $this->serviceStub->GetRoleListOfUser( $parameters)->return;
+ }
+
+ /**
+ * Function to get the user list of role
+ *
+ * @param GetUserListOfRole $parameters
+ * @return GetUserListOfRoleResponse
+ */
+ public function getUserListOfRole( $roleName){
+ $parameters = new GetUserListOfRole();
+ $parameters->roleName = $roleName;
+ return $this->serviceStub->getUserListOfRole( $parameters);
+ }
+
+ /**
+ * Function to update role list of user
+ *
+ * @param UpdateRoleListOfUser $parameters
+ * @return void
+ */
+ public function updateRoleListOfUser( $username, $roles){
+ $parameters = new UpdateRoleListOfUser();
+ $parameters->userName = $username;
+ $parameters->deletedRoles = $roles["deleted"];
+ $parameters->newRoles = $roles["new"];
+ return $this->serviceStub->updateRoleListOfUser( $parameters);
+ }
+
+ /**
+ * Function to get the tenant id
+ *
+ * @param GetTenantId $parameters
+ * @return GetTenantIdResponse
+ */
+ public function getTenantId(){
+ $parameters = new GetTenantId();
+
+ return $this->serviceStub->getTenantId( $parameters);
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/UserStoreManager/UserStoreManager.stub.php
----------------------------------------------------------------------
diff --git a/app/libraries/UserStoreManager/UserStoreManager.stub.php b/app/libraries/UserStoreManager/UserStoreManager.stub.php
new file mode 100755
index 0000000..d92ccb9
--- /dev/null
+++ b/app/libraries/UserStoreManager/UserStoreManager.stub.php
@@ -0,0 +1,1568 @@
+<?php
+
+/**
+ * This file contains the DTOs and the method stubs for
+ * WSO2 IS 4.6.0 RemoteUserStoreManger service.
+ */
+
+class ClaimDTO {
+
+ /**
+ * @var string $claimUri
+ * @access public
+ */
+ public $claimUri;
+
+ /**
+ * @var string $description
+ * @access public
+ */
+ public $description;
+
+ /**
+ * @var string $dialectURI
+ * @access public
+ */
+ public $dialectURI;
+
+ /**
+ * @var int $displayOrder
+ * @access public
+ */
+ public $displayOrder;
+
+ /**
+ * @var string $displayTag
+ * @access public
+ */
+ public $displayTag;
+
+ /**
+ * @var string $regEx
+ * @access public
+ */
+ public $regEx;
+
+ /**
+ * @var boolean $required
+ * @access public
+ */
+ public $required;
+
+ /**
+ * @var boolean $supportedByDefault
+ * @access public
+ */
+ public $supportedByDefault;
+
+ /**
+ * @var string $value
+ * @access public
+ */
+ public $value;
+
+}
+
+class PermissionDTO {
+
+ /**
+ * @var string $action
+ * @access public
+ */
+ public $action;
+
+ /**
+ * @var string $resourceId
+ * @access public
+ */
+ public $resourceId;
+
+}
+
+class Tenant {
+
+ /**
+ * @var boolean $active
+ * @access public
+ */
+ public $active;
+
+ /**
+ * @var string $adminFirstName
+ * @access public
+ */
+ public $adminFirstName;
+
+ /**
+ * @var string $adminFullName
+ * @access public
+ */
+ public $adminFullName;
+
+ /**
+ * @var string $adminLastName
+ * @access public
+ */
+ public $adminLastName;
+
+ /**
+ * @var string $adminName
+ * @access public
+ */
+ public $adminName;
+
+ /**
+ * @var string $adminPassword
+ * @access public
+ */
+ public $adminPassword;
+
+ /**
+ * @var string $createdDate YYYY-MM-DD
+ * @access public
+ */
+ public $createdDate;
+
+ /**
+ * @var string $domain
+ * @access public
+ */
+ public $domain;
+
+ /**
+ * @var string $email
+ * @access public
+ */
+ public $email;
+
+ /**
+ * @var int $id
+ * @access public
+ */
+ public $id;
+
+ /**
+ * @var RealmConfiguration $realmConfig
+ * @access public
+ */
+ public $realmConfig;
+
+}
+
+class RealmConfiguration {
+
+ /**
+ * @var string $addAdmin
+ * @access public
+ */
+ public $addAdmin;
+
+ /**
+ * @var string $adminPassword
+ * @access public
+ */
+ public $adminPassword;
+
+ /**
+ * @var string $adminRoleName
+ * @access public
+ */
+ public $adminRoleName;
+
+ /**
+ * @var string $adminUserName
+ * @access public
+ */
+ public $adminUserName;
+
+ /**
+ * @var string $authorizationManagerClass
+ * @access public
+ */
+ public $authorizationManagerClass;
+
+ /**
+ * @var string $authzProperties
+ * @access public
+ */
+ public $authzProperties;
+
+ /**
+ * @var string $description
+ * @access public
+ */
+ public $description;
+
+ /**
+ * @var string $everyOneRoleName
+ * @access public
+ */
+ public $everyOneRoleName;
+
+ /**
+ * @var string $multipleCredentialProps
+ * @access public
+ */
+ public $multipleCredentialProps;
+
+ /**
+ * @var boolean $passwordsExternallyManaged
+ * @access public
+ */
+ public $passwordsExternallyManaged;
+
+ /**
+ * @var string $persistedTimestamp YYYY-MM-DD
+ * @access public
+ */
+ public $persistedTimestamp;
+
+ /**
+ * @var boolean $primary
+ * @access public
+ */
+ public $primary;
+
+ /**
+ * @var string $realmClassName
+ * @access public
+ */
+ public $realmClassName;
+
+ /**
+ * @var string $realmProperties
+ * @access public
+ */
+ public $realmProperties;
+
+ /**
+ * @var RealmConfiguration $secondaryRealmConfig
+ * @access public
+ */
+ public $secondaryRealmConfig;
+
+ /**
+ * @var int $tenantId
+ * @access public
+ */
+ public $tenantId;
+
+ /**
+ * @var string $userStoreClass
+ * @access public
+ */
+ public $userStoreClass;
+
+ /**
+ * @var string $userStoreProperties
+ * @access public
+ */
+ public $userStoreProperties;
+
+}
+
+class ClaimValue {
+
+ /**
+ * @var string $claimURI
+ * @access public
+ */
+ public $claimURI;
+
+ /**
+ * @var string $value
+ * @access public
+ */
+ public $value;
+
+}
+
+class AddUserClaimValues {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var ClaimValue $claims
+ * @access public
+ */
+ public $claims;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetUserClaimValuesForClaims {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claims
+ * @access public
+ */
+ public $claims;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetUserClaimValuesForClaimsResponse {
+
+ /**
+ * @var ClaimValue $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetTenantIdofUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $username;
+
+}
+
+class GetTenantIdofUserResponse {
+
+ /**
+ * @var int $return
+ * @access public
+ */
+ public $return; // int
+
+}
+
+class AddUserClaimValue {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claimURI
+ * @access public
+ */
+ public $claimURI;
+
+ /**
+ * @var string $claimValue
+ * @access public
+ */
+ public $claimValue;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetUserClaimValues {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetUserClaimValuesResponse {
+
+ /**
+ * @var ClaimDTO $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetTenantId {
+
+}
+
+class GetTenantIdResponse {
+
+ /**
+ * @var int $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class AddUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $credential
+ * @access public
+ */
+ public $credential;
+
+ /**
+ * @var string $roleList
+ * @access public
+ */
+ public $roleList;
+
+ /**
+ * @var ClaimValue $claims
+ * @access public
+ */
+ public $claims;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+ /**
+ * @var boolean $requiredPasswordChange
+ * @access public
+ */
+ public $requirePasswordChange;
+
+}
+
+class AddRole {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+ /**
+ * @var string $userList
+ * @access public
+ */
+ public $userList;
+
+ /**
+ * @var PermissionDTO $permissions
+ * @access public
+ */
+ public $permissions;
+
+}
+
+class GetUserList {
+
+ /**
+ * @var string $claimUri
+ * @access public
+ */
+ public $claimUri;
+
+ /**
+ * @var string $claimValue
+ * @access public
+ */
+ public $claimValue;
+
+ /**
+ * @var string $profile
+ * @access public
+ */
+ public $profile;
+
+}
+
+class GetUserListResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class UpdateCredential {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $newCredential
+ * @access public
+ */
+ public $newCredential;
+
+ /**
+ * @var string $oldCredential
+ * @access public
+ */
+ public $oldCredential;
+
+}
+
+class UpdateUserListOfRole {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+ /**
+ * @var string $deletedUsers
+ * @access public
+ */
+ public $deletedUsers;
+
+ /**
+ * @var string $newUsers
+ * @access public
+ */
+ public $newUsers;
+
+}
+
+class UpdateRoleListOfUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $deletedRoles
+ * @access public
+ */
+ public $deletedRoles;
+
+ /**
+ * @var string $newRoles
+ * @access public
+ */
+ public $newRoles;
+
+}
+
+class SetUserClaimValue {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claimURI
+ * @access public
+ */
+ public $claimURI;
+
+ /**
+ * @var string $claimValue
+ * @access public
+ */
+ public $claimValue;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class SetUserClaimValues {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var ClaimValue $claims
+ * @access public
+ */
+ public $claims;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class DeleteUserClaimValue {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claimURI
+ * @access public
+ */
+ public $claimURI;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class DeleteUserClaimValues {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claims
+ * @access public
+ */
+ public $claims;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetHybridRoles {
+
+}
+
+class GetHybridRolesResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetPasswordExpirationTime {
+
+ /**
+ * @var string $username
+ * @access public
+ */
+ public $username;
+
+}
+
+class GetPasswordExpirationTimeResponse {
+
+ /**
+ * @var long $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class UpdateRoleName {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+ /**
+ * @var string $newRoleName
+ * @access public
+ */
+ public $newRoleName;
+
+}
+
+class ListUsers {
+
+ /**
+ * @var string $filter
+ * @access public
+ */
+ public $filter;
+
+ /**
+ * @var int $maxItemLimit
+ * @access public
+ */
+ public $maxItemLimit;
+
+}
+
+class ListUsersResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class IsExistingUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+}
+
+class IsExistingUserResponse {
+
+ /**
+ * @var boolean $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class IsExistingRole {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+}
+
+class IsExistingRoleResponse {
+
+ /**
+ * @var boolean $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetRoleNames {
+
+}
+
+class GetRoleNamesResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetProfileNames {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+}
+
+class GetProfileNamesResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetUserListOfRole {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+}
+
+class GetUserListOfRoleResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetUserClaimValue {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $claim
+ * @access public
+ */
+ public $claim;
+
+ /**
+ * @var string $profileName
+ * @access public
+ */
+ public $profileName;
+
+}
+
+class GetUserClaimValueResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetAllProfileNames {
+
+}
+
+class GetAllProfileNamesResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class UpdateCredentialByAdmin {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $newCredential
+ * @access public
+ */
+ public $newCredential;
+
+}
+
+class DeleteUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+}
+
+class DeleteRole {
+
+ /**
+ * @var string $roleName
+ * @access public
+ */
+ public $roleName;
+
+}
+
+class GetUserId {
+
+ /**
+ * @var string $username
+ * @access public
+ */
+ public $username;
+
+}
+
+class GetUserIdResponse {
+
+ /**
+ * @var int $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetRoleListOfUser {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+}
+
+class getRoleListOfUserResponse {
+
+ /**
+ * @var string $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class GetProperties {
+
+ /**
+ * @var Tenant $tenant
+ * @access public
+ */
+ public $tenant;
+
+}
+
+class GetPropertiesResponse {
+
+ /**
+ * @var Array<string> $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class IsReadOnly {
+
+}
+
+class IsReadOnlyResponse {
+
+ /**
+ * @var boolean $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class Authenticate {
+
+ /**
+ * @var string $userName
+ * @access public
+ */
+ public $userName;
+
+ /**
+ * @var string $credential
+ * @access public
+ */
+ public $credential;
+
+}
+
+class AuthenticateResponse {
+
+ /**
+ * @var boolean $return
+ * @access public
+ */
+ public $return;
+
+}
+
+class UserStoreException {
+
+}
+
+/**
+ * UserStoreManagerService class
+ *
+ */
+class UserStoreManagerStub extends SoapClient {
+
+ private static $classmap = array(
+ 'ClaimDTO' => 'ClaimDTO',
+ 'PermissionDTO' => 'PermissionDTO',
+ 'Tenant' => 'Tenant',
+ 'RealmConfiguration' => 'RealmConfiguration',
+ 'ClaimValue' => 'ClaimValue',
+ 'addUserClaimValues' => 'AddUserClaimValues',
+ 'getUserClaimValuesForClaims' => 'GetUserClaimValuesForClaims',
+ 'getUserClaimValuesForClaimsResponse' => 'GetUserClaimValuesForClaimsResponse',
+ 'getTenantIdofUser' => 'GetTenantIdofUser',
+ 'getTenantIdofUserResponse' => 'GetTenantIdofUserResponse',
+ 'addUserClaimValue' => 'AddUserClaimValue',
+ 'getUserClaimValues' => 'GetUserClaimValues',
+ 'getUserClaimValuesResponse' => 'GetUserClaimValuesResponse',
+ 'getTenantId' => 'GetTenantId',
+ 'getTenantIdResponse' => 'GetTenantIdResponse',
+ 'addUser' => 'AddUser',
+ 'addRole' => 'AddRole',
+ 'getUserList' => 'GetUserList',
+ 'getUserListResponse' => 'GetUserListResponse',
+ 'updateCredential' => 'UpdateCredential',
+ 'updateUserListOfRole' => 'UpdateUserListOfRole',
+ 'updateRoleListOfUser' => 'UpdateRoleListOfUser',
+ 'setUserClaimValue' => 'SetUserClaimValue',
+ 'setUserClaimValues' => 'SetUserClaimValues',
+ 'deleteUserClaimValue' => 'DeleteUserClaimValue',
+ 'deleteUserClaimValues' => 'DeleteUserClaimValues',
+ 'getHybridRoles' => 'GetHybridRoles',
+ 'getHybridRolesResponse' => 'GetHybridRolesResponse',
+ 'getPasswordExpirationTime' => 'GetPasswordExpirationTime',
+ 'getPasswordExpirationTimeResponse' => 'GetPasswordExpirationTimeResponse',
+ 'updateRoleName' => 'UpdateRoleName',
+ 'listUsers' => 'ListUsers',
+ 'listUsersResponse' => 'ListUsersResponse',
+ 'isExistingUser' => 'IsExistingUser',
+ 'isExistingUserResponse' => 'IsExistingUserResponse',
+ 'isExistingRole' => 'IsExistingRole',
+ 'isExistingRoleResponse' => 'IsExistingRoleResponse',
+ 'getRoleNames' => 'GetRoleNames',
+ 'getRoleNamesResponse' => 'GetRoleNamesResponse',
+ 'getProfileNames' => 'GetProfileNames',
+ 'getProfileNamesResponse' => 'GetProfileNamesResponse',
+ 'getUserListOfRole' => 'GetUserListOfRole',
+ 'getUserListOfRoleResponse' => 'GetUserListOfRoleResponse',
+ 'getUserClaimValue' => 'GetUserClaimValue',
+ 'getUserClaimValueResponse' => 'GetUserClaimValueResponse',
+ 'getAllProfileNames' => 'GetAllProfileNames',
+ 'getAllProfileNamesResponse' => 'GetAllProfileNamesResponse',
+ 'updateCredentialByAdmin' => 'UpdateCredentialByAdmin',
+ 'deleteUser' => 'DeleteUser',
+ 'deleteRole' => 'DeleteRole',
+ 'getUserId' => 'GetUserId',
+ 'getUserIdResponse' => 'GetUserIdResponse',
+ 'getRoleListOfUser' => 'GetRoleListOfUser',
+ 'getRoleListOfUserResponse' => 'GetRoleListOfUserResponse',
+ 'getProperties' => 'GetProperties',
+ 'getPropertiesResponse' => 'GetPropertiesResponse',
+ 'isReadOnly' => 'IsReadOnly',
+ 'isReadOnlyResponse' => 'IsReadOnlyResponse',
+ 'authenticate' => 'Authenticate',
+ 'authenticateResponse' => 'AuthenticateResponse',
+ 'Tenant' => 'Tenant'
+ );
+
+ public function RemoteUserStoreManagerStub($wsdl, $options = array()) {
+ foreach (self::$classmap as $key => $value) {
+ if (!isset($options['classmap'][$key])) {
+ $options['classmap'][$key] = $value;
+ }
+ }
+ parent::__construct($wsdl, $options);
+ }
+
+ /**
+ * Function to authenticate
+ *
+ * @param Authenticate $parameters
+ * @return AuthenticateResponse
+ */
+ public function authenticate(Authenticate $parameters) {
+ return $this->__soapCall('authenticate', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function get user list
+ *
+ * @param GetUserList $parameters
+ * @return GetUserListResponse
+ */
+ public function getUserList(GetUserList $parameters) {
+ return $this->__soapCall('getUserList', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the user claim value
+ *
+ * @param GetUserClaimValue $parameters
+ * @return GetUserClaimValueResponse
+ */
+ public function getUserClaimValue(GetUserClaimValue $parameters) {
+ return $this->__soapCall('getUserClaimValue', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the user list of role
+ *
+ * @param GetUserListOfRole $parameters
+ * @return GetUserListOfRoleResponse
+ */
+ public function getUserListOfRole(GetUserListOfRole $parameters) {
+ return $this->__soapCall('getUserListOfRole', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to check whether the service is read only
+ *
+ * @param IsReadOnly $parameters
+ * @return IsReadOnlyResponse
+ */
+ public function isReadOnly(IsReadOnly $parameters) {
+ return $this->__soapCall('isReadOnly', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to update the credentials
+ *
+ * @param UpdateCredential $parameters
+ * @return void
+ */
+ public function updateCredential(UpdateCredential $parameters) {
+ return $this->__soapCall('updateCredential', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to set user claim value
+ *
+ * @param SetUserClaimValue $parameters
+ * @return void
+ */
+ public function setUserClaimValue(setUserClaimValue $parameters) {
+ return $this->__soapCall('setUserClaimValue', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the claim values for claims
+ *
+ * @param GetUserClaimValuesForClaims $parameters
+ * @return GetUserClaimValuesForClaimsResponse
+ */
+ public function getUserClaimValuesForClaims(GetUserClaimValuesForClaims $parameters) {
+ return $this->__soapCall('getUserClaimValuesForClaims', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to delete user claim values
+ *
+ * @param DeleteUserClaimValues $parameters
+ * @return void
+ */
+ public function deleteUserClaimValues(DeleteUserClaimValues $parameters) {
+ return $this->__soapCall('deleteUserClaimValues', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to delete user claim value
+ *
+ * @param DeleteUserClaimValue $parameters
+ * @return void
+ */
+ public function deleteUserClaimValue(DeleteUserClaimValue $parameters) {
+ return $this->__soapCall('deleteUserClaimValue', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to check whether use is existing
+ *
+ * @param IsExistingUser $parameters
+ * @return IsExistingUserResponse
+ */
+ public function isExistingUser(IsExistingUser $parameters) {
+ return $this->__soapCall('isExistingUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to update credential by admin
+ *
+ * @param UpdateCredentialByAdmin $parameters
+ * @return void
+ */
+ public function updateCredentialByAdmin(UpdateCredentialByAdmin $parameters) {
+ return $this->__soapCall('updateCredentialByAdmin', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the tenant id
+ *
+ * @param GetTenantId $parameters
+ * @return GetTenantIdResponse
+ */
+ public function getTenantId(GetTenantId $parameters) {
+ return $this->__soapCall('getTenantId', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get role names
+ *
+ * @param GetRoleNames $parameters
+ * @return GetRoleNamesResponse
+ */
+ public function getRoleNames(GetRoleNames $parameters) {
+ return $this->__soapCall('getRoleNames', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Funtion to get properties
+ *
+ * @param GetProperties $parameters
+ * @return GetPropertiesResponse
+ */
+ public function getProperties(GetProperties $parameters) {
+ return $this->__soapCall('getProperties', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get user id
+ *
+ * @param GetUserId $parameters
+ * @return GetUserIdResponse
+ */
+ public function getUserId(GetUserId $parameters) {
+ return $this->__soapCall('getUserId', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get all the profile names
+ *
+ * @param GetAllProfileNames $parameters
+ * @return GetAllProfileNamesResponse
+ */
+ public function getAllProfileNames(GetAllProfileNames $parameters) {
+ return $this->__soapCall('getAllProfileNames', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the password expiration time
+ *
+ * @param GetPasswordExpirationTime $parameters
+ * @return GetPasswordExpirationTimeResponse
+ */
+ public function getPasswordExpirationTime(GetPasswordExpirationTime $parameters) {
+ return $this->__soapCall('getPasswordExpirationTime', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to list users
+ *
+ * @param ListUsers $parameters
+ * @return ListUsersResponse
+ */
+ public function listUsers(ListUsers $parameters) {
+ return $this->__soapCall('listUsers', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to delete role
+ *
+ * @param DeleteRole $parameters
+ * @return void
+ */
+ public function deleteRole(DeleteRole $parameters) {
+ return $this->__soapCall('deleteRole', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to delete user
+ *
+ * @param DeleteUser $parameters
+ * @return void
+ */
+ public function deleteUser(DeleteUser $parameters) {
+ return $this->__soapCall('deleteUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function get the role list of the user
+ *
+ * @param GetRoleListOfUser $parameters
+ * @return GetRoleListOfUserResponse
+ */
+ public function getRoleListOfUser(GetRoleListOfUser $parameters) {
+ return $this->__soapCall('getRoleListOfUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to update the role name
+ *
+ * @param UpdateRoleName $parameters
+ * @return void
+ */
+ public function updateRoleName(UpdateRoleName $parameters) {
+ return $this->__soapCall('updateRoleName', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to check whether a role is existing
+ *
+ * @param IsExistingRole $parameters
+ * @return IsExistingRoleResponse
+ */
+ public function isExistingRole(IsExistingRole $parameters) {
+ return $this->__soapCall('isExistingRole', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to update role list of user
+ *
+ * @param UpdateRoleListOfUser $parameters
+ * @return void
+ */
+ public function updateRoleListOfUser(UpdateRoleListOfUser $parameters) {
+ return $this->__soapCall('updateRoleListOfUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get user claim values
+ *
+ * @param GetUserClaimValues $parameters
+ * @return GetUserClaimValuesResponse
+ */
+ public function getUserClaimValues(GetUserClaimValues $parameters) {
+ return $this->__soapCall('getUserClaimValues', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get hybrid roles
+ *
+ * @param GetHybridRoles $parameters
+ * @return GetHybridRolesResponse
+ */
+ public function getHybridRoles(GetHybridRoles $parameters) {
+ return $this->__soapCall('getHybridRoles', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to add user claim values
+ *
+ * @param AddUserClaimValues $parameters
+ * @return void
+ */
+ public function addUserClaimValues(AddUserClaimValues $parameters) {
+ return $this->__soapCall('addUserClaimValues', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to add user
+ *
+ * @param AddUser $parameters
+ * @return void
+ */
+ public function addUser(AddUser $parameters) {
+ return $this->__soapCall('addUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to add role
+ *
+ * @param AddRole $parameters
+ * @return void
+ */
+ public function addRole(AddRole $parameters) {
+ return $this->__soapCall('addRole', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to update user list of roles
+ *
+ * @param UpdateUserListOfRole $parameters
+ * @return void
+ */
+ public function updateUserListOfRole(UpdateUserListOfRole $parameters) {
+ return $this->__soapCall('updateUserListOfRole', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the tenant Id
+ *
+ * @param GetTenantIdofUser $parameters
+ * @return GetTenantIdofUserResponse
+ */
+ public function getTenantIdofUser(GetTenantIdofUser $parameters) {
+ return $this->__soapCall('getTenantIdofUser', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to set user claim values
+ *
+ * @param SetUserClaimValues $parameters
+ * @return void
+ */
+ public function setUserClaimValues(SetUserClaimValues $parameters) {
+ return $this->__soapCall('setUserClaimValues', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to add user claim value
+ *
+ * @param AddUserClaimValue $parameters
+ * @return void
+ */
+ public function addUserClaimValue(AddUserClaimValue $parameters) {
+ return $this->__soapCall('addUserClaimValue', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+ /**
+ * Function to get the profile names
+ *
+ * @param GetProfileNames $parameters
+ * @return GetProfileNamesResponse
+ */
+ public function getProfileNames(GetProfileNames $parameters) {
+ return $this->__soapCall('getProfileNames', array($parameters), array(
+ 'uri' => 'http://service.ws.um.carbon.wso2.org',
+ 'soapaction' => ''
+ ));
+ }
+
+}
+
+?>
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/WSISClient.php
----------------------------------------------------------------------
diff --git a/app/libraries/WSISClient.php b/app/libraries/WSISClient.php
new file mode 100755
index 0000000..47e242d
--- /dev/null
+++ b/app/libraries/WSISClient.php
@@ -0,0 +1,282 @@
+<?php
+
+require_once 'UserStoreManager/UserStoreManager.php';
+
+/**
+ * WSISClient class
+ *
+ * This class provides a unified interface for the
+ * WSO2 IS 4.6.0 service APIs.
+ */
+class WSISClient {
+
+ /**
+ * @var UserStoreManager
+ * @access private
+ */
+ private $userStoreManager;
+
+ /**
+ * @var string
+ * @access private
+ */
+ private $server;
+
+ /**
+ * @var string
+ * @access private
+ */
+ private $service_url;
+
+
+ /**
+ * Constructor
+ *
+ * @param string $admin_username
+ * @param string $admin_password
+ * @param string $server
+ * @param string $service_url
+ * @param string $cafile_path
+ * @param bool $verify_peer
+ * @param bool $allow_selfsigned_cer
+ * @throws Exception
+ */
+ public function __construct($admin_username, $admin_password = null, $server,
+ $service_url,$cafile_path, $verify_peer, $allow_selfsigned_cert) {
+
+ $context = stream_context_create(array(
+ 'ssl' => array(
+ 'verify_peer' => $verify_peer,
+ "allow_self_signed"=> $allow_selfsigned_cert,
+ 'cafile' => $cafile_path,
+ 'CN_match' => $server,
+ )));
+
+ $parameters = array(
+ 'login' => $admin_username,
+ 'password' => $admin_password,
+ 'stream_context' => $context,
+ 'trace' => 1,
+ 'features' => SOAP_WAIT_ONE_WAY_CALLS
+ );
+
+ $this->server = $server;
+ $this->service_url = $service_url;
+
+ try {
+ $this->userStoreManager = new UserStoreManager($service_url, $parameters);
+ } catch (Exception $ex) {
+ print_r( $ex); exit;
+ throw new Exception("Unable to instantiate client", 0, $ex);
+ }
+ }
+
+
+ /**
+ * Function to add new user
+ *
+ * @param string $userName
+ * @param string $password
+ * @return void
+ * @throws Exception
+ */
+ public function addUser($userName, $password, $fullName) {
+ try {
+ $this->userStoreManager->addUser($userName, $password, $fullName);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to add new user", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to delete existing user
+ *
+ * @param string $username
+ * @return void
+ * @throws Exception
+ */
+ public function deleteUser($username) {
+ try {
+ $this->userStoreManager->deleteUser($username);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to delete user", 0, $ex);
+ }
+ }
+
+
+ /**
+ * Function to authenticate user
+ *
+ * @param string $username
+ * @param string $password
+ * @return boolean
+ * @throws Exception
+ */
+ public function authenticate($username, $password){
+ try {
+ return $this->userStoreManager->authenticate($username, $password);
+ } catch (Exception $ex) {
+ var_dump( $ex); exit;
+ throw new Exception("Unable to authenticate user", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to check whether username exists
+ *
+ * @param string $username
+ * @return boolean
+ * @throws Exception
+ */
+ public function username_exists($username){
+ try {
+ return $this->userStoreManager->isExistingUser($username);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to verify username exists", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to check whether a role is existing
+ *
+ * @param string $roleName
+ * @return IsExistingRoleResponse
+ */
+ public function is_existing_role( $roleName){
+ try {
+ return $this->userStoreManager->isExistingRole( $roleName);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to check if the role exists", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to add new role by providing the role name.
+ *
+ * @param string $roleName
+ */
+ public function add_role($roleName){
+ try {
+ return $this->userStoreManager->addRole( $roleName);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to add this role", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to delete existing role
+ *
+ * @param string $roleName
+ * @return void
+ * @throws Exception
+ */
+ public function delete_role($roleName) {
+ try {
+ $this->userStoreManager->deleteRole($roleName);
+ } catch (Exception $ex) {
+ var_dump( $ex); exit;
+
+ throw new Exception("Unable to delete role", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to get the list of all existing roles
+ *
+ * @return roles list
+ */
+ public function get_all_roles(){
+ try {
+ return $this->userStoreManager->getRoleNames();
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get all roles", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to get role of a user
+ *
+ * @return user role
+ */
+ public function get_user_roles( $username){
+ try {
+ return $this->userStoreManager->getRoleListOfUser( $username);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get User roles.", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to get the user list of role
+ *
+ * @param GetUserListOfRole $parameters
+ * @return GetUserListOfRoleResponse
+ */
+ public function get_userlist_of_role( $role){
+ try {
+ return $this->userStoreManager->getUserListOfRole( $role);
+ } catch (Exception $ex) {
+ var_dump( $ex); exit;
+ throw new Exception("Unable to get user list of roles.", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to update role list of user
+ *
+ * @param UpdateRoleListOfUser $parameters
+ * @return void
+ */
+ public function update_user_roles( $username, $roles){
+ try {
+ return $this->userStoreManager->updateRoleListOfUser( $username, $roles);
+ } catch (Exception $ex) {
+ throw new Exception("Unable to update role of the user.", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to list users
+ *
+ * @param void
+ * @return void
+ */
+ public function list_users(){
+ try {
+ return $this->userStoreManager->listUsers();
+ } catch (Exception $ex) {
+ var_dump( $ex->debug_message);
+ throw new Exception("Unable to list users.", 0, $ex);
+ }
+ }
+
+ /**
+ * Function to get the tenant id
+ *
+ * @param GetTenantId $parameters
+ * @return GetTenantIdResponse
+ */
+ public function get_tenant_id(){
+ try {
+ return $this->userStoreManager->getTenantId();
+ } catch (Exception $ex) {
+ var_dump( $ex->debug_message);
+ throw new Exception("Unable to get the tenant Id.", 0, $ex);
+ }
+ }
+
+ /**
+ * Function create a new Tenant
+ *
+ * @param Tenant $parameters
+ * @return void
+ */
+ public function create_tenant( $inputs){
+ try {
+ return $this->userStoreManager->createTenant( $inputs);
+ } catch (Exception $ex) {
+ var_dump( $ex);
+ throw new Exception("Unable to create Tenant.", 0, $ex);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/id_utilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/id_utilities.php b/app/libraries/id_utilities.php
new file mode 100755
index 0000000..9db7450
--- /dev/null
+++ b/app/libraries/id_utilities.php
@@ -0,0 +1,172 @@
+<?php
+/**
+ * Interface for ID management
+ */
+
+interface IdUtilities
+{
+ /**
+ * Connect to the user database.
+ * @return mixed|void
+ */
+ public function connect();
+
+ /**
+ * Return true if the given username exists in the database.
+ * @param $username
+ * @return bool
+ */
+ public function username_exists($username);
+
+ /**
+ * Authenticate user given username and password.
+ * @param $username
+ * @param $password
+ * @return int|mixed
+ */
+ public function authenticate($username, $password);
+
+ /**
+ * Create new user
+ *
+ * @param $username
+ * @param $password
+ * @param $first_name
+ * @param $last_name
+ * @param $email
+ * @param $organization
+ * @param $address
+ * @param $country
+ * @param $telephone
+ * @param $mobile
+ * @param $im
+ * @param $url
+ * @return mixed
+ */
+ public function add_user($username, $password, $first_name, $last_name, $email, $organization,
+ $address, $country,$telephone, $mobile, $im, $url);
+
+ /**
+ * Function to remove an existing user
+ *
+ * @param $username
+ * @return void
+ */
+ public function remove_user($username);
+
+ /**
+ * Get the user profile
+ * @param $username
+ * @return mixed|void
+ */
+ public function get_user_profile($username);
+
+ /**
+ * Update the user profile
+ *
+ * @param $username
+ * @param $first_name
+ * @param $last_name
+ * @param $email
+ * @param $organization
+ * @param $address
+ * @param $country
+ * @param $telephone
+ * @param $mobile
+ * @param $im
+ * @param $url
+ * @return mixed
+ */
+ public function update_user_profile($username, $first_name, $last_name, $email, $organization, $address,
+ $country, $telephone, $mobile, $im, $url);
+
+ /**
+ * Function to update user password
+ *
+ * @param $username
+ * @param $current_password
+ * @param $new_password
+ * @return mixed
+ */
+ public function change_password($username, $current_password, $new_password);
+
+ /**
+ * Function to check whether a user has permission for a particular permission string(api method).
+ *
+ * @param $username
+ * @param $permission_string
+ * @return bool
+ */
+ public function checkPermissionForUser($username, $permission_string);
+
+ /**
+ * Function to get all the permissions that a particular user has.
+ *
+ * @param $username
+ * @return mixed
+ */
+ public function getUserPermissions($username);
+
+ /**
+ * Function to get the entire list of roles in the application
+ *
+ * @return mixed
+ */
+ public function getRoleNames();
+
+ /**
+ * Function to check whether a role is existing
+ *
+ * @param string $roleName
+ * @return IsExistingRoleResponse
+ */
+ public function isExistingRole( $roleName);
+
+ /**
+ * Function to add new role by providing the role name.
+ *
+ * @param string $roleName
+ */
+ public function addRole($roleName);
+
+ /**
+ * Function to get the role list of a user
+ *
+ * @param $username
+ * @return mixed
+ */
+ public function getRoleListOfUser($username);
+ /**
+ * Function to update role list of user
+ *
+ * @param UpdateRoleListOfUser $parameters
+ * @return void
+ */
+ public function updateRoleListOfUser( $username, $roles);
+
+ /**
+ * Function to get the user list of a particular role
+ *
+ * @param $role
+ * @return mixed
+ */
+ public function getUserListOfRole($role);
+
+ /**
+ * Function to add a role to a user
+ *
+ * @param $username
+ * @param $role
+ * @return void
+ */
+ public function addUserToRole($username, $role);
+
+ /**
+ * Function to role from user
+ *
+ * @param $username
+ * @param $role
+ * @return void
+ */
+ public function removeUserFromRole($username, $role);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/userapi_config.ini
----------------------------------------------------------------------
diff --git a/app/libraries/userapi_config.ini b/app/libraries/userapi_config.ini
new file mode 100755
index 0000000..ad96b5d
--- /dev/null
+++ b/app/libraries/userapi_config.ini
@@ -0,0 +1,14 @@
+;Tenant admin's username
+admin-username = "admin@phprg.scigap.org"
+
+;Tenant admin's password
+admin-password = "prodphprgadmin@scigap.org"
+
+;user api server host
+server-host = "gw127.iu.xsede.org"
+
+;user api server port
+server-port = "9930"
+
+;thrift transport timeout
+thrift-timeout = "5000"
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/libraries/userapi_utilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/userapi_utilities.php b/app/libraries/userapi_utilities.php
new file mode 100755
index 0000000..31cf1f7
--- /dev/null
+++ b/app/libraries/userapi_utilities.php
@@ -0,0 +1,394 @@
+<?php
+/**
+ * Basic Airavata UserAPI utility functions
+ */
+/**
+ * Import Thrift and Airavata
+ */
+/*$GLOBALS['THRIFT_ROOT'] = './lib/Thrift/';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Transport/TTransport.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Transport/TSocket.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Protocol/TProtocol.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Protocol/TBinaryProtocol.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Exception/TException.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Exception/TApplicationException.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Exception/TProtocolException.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Base/TBase.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Type/TType.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Type/TMessageType.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'Factory/TStringFuncFactory.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'StringFunc/TStringFunc.php';
+require_once $GLOBALS['THRIFT_ROOT'] . 'StringFunc/Core.php';
+
+$GLOBALS['AIRAVATA_ROOT'] = './lib/Airavata/';
+require_once $GLOBALS['AIRAVATA_ROOT'] . 'UserAPI/UserAPI.php';
+require_once $GLOBALS['AIRAVATA_ROOT'] . 'UserAPI/Models/Types.php';
+require_once $GLOBALS['AIRAVATA_ROOT'] . 'UserAPI/Error/Types.php';
+require_once $GLOBALS['AIRAVATA_ROOT'] . 'UserAPI/Types.php';
+
+require_once './lib/UserAPIClientFactory.php';
+require_once './id_utilities.php';
+require_once './wsis_utilities.php';
+
+use \Airavata\UserAPI\UserAPIClient;
+use \Airavata\UserAPI\UserAPIClientFactory;
+use \Airavata\UserAPI\Models\UserProfile;
+use \Airavata\UserAPI\Models\APIPermissions;
+use \Airavata\UserAPI\Models\AuthenticationResponse;
+
+/**
+ * Utilities for ID management with Airavata UserAPI*/
+ */
+
+class UserAPIUtilities implements IdUtilities{
+
+ const USER_API_CONFIG_PATH = 'userapi_config.ini';
+
+ /**
+ * UserAPI client
+ *
+ * @var UserAPIClient
+ * @access private
+ */
+ private $userapi_client;
+
+
+ /**
+ * UserAPI client factory
+ *
+ * @var UserAPIClientFactory
+ * @access private
+ */
+ private $userapi_client_factory;
+
+ /**
+ * Path to the user api token file
+ */
+ const USERAPI_TOKEN_DB_PATH = 'userapi_tokens.xml';
+
+ /**
+ * Connect to the identity store.
+ * @return mixed|void
+ */
+ public function connect() {
+ try {
+ global $userapi_config;
+
+ if (file_exists(self::USER_API_CONFIG_PATH)) {
+ $userapi_config = parse_ini_file(self::USER_API_CONFIG_PATH);
+ } else {
+ throw new Exception("Error: Cannot open userapi_config.xml file!");
+ }
+
+ if (!$userapi_config) {
+ throw new Exception('Error: Unable to read userapi_config.xml!');
+ }
+
+ $properties = array();
+ $properties['userapiServerHost'] = $userapi_config['server-host'];
+ $properties['userapiServerPort'] = $userapi_config['server-port'];
+ $properties['thriftTimeout'] = $userapi_config['thrift-timeout'];
+
+ $this->userapi_client_factory = new UserAPIClientFactory($properties);
+ $this->userapi_client = $this->userapi_client_factory->getUserAPIClient();
+ //testing the API
+ $this->userapi_client->getAPIVersion();
+ } catch (Exception $ex) {
+ print_r( $ex); exit;
+ throw new Exception('Unable to instantiate UserAPI client.', 0, NULL);
+ }
+ }
+
+ /**
+ * Return true if the given username exists in the identity server.
+ * @param $username
+ * @return bool
+ */
+ public function username_exists($username) {
+ try{
+ return $this->userapi_client->checkUsernameExists($username,$this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to check whether username exists", 0, NULL);
+ }
+
+ }
+
+ /**
+ * authenticate a given user
+ * @param $username
+ * @param $password
+ * @return boolean
+ */
+ public function authenticate($username, $password) {
+ try{
+ $apiPermissions = $this->userapi_client->authenticateUser($username, $password, $this->getAPIToken());
+ return true;
+ } catch (Exception $ex) {
+ throw new Exception("Unable to authenticate user", 0, NULL);
+ }
+ }
+
+ /**
+ * Add a new user to the identity server.
+ * @param $username
+ * @param $password
+ * @return void
+ */
+ public function add_user($username, $password, $first_name, $last_name, $email, $organization,
+ $address, $country,$telephone, $mobile, $im, $url) {
+ try{
+ $profile = new UserProfile();
+ $profile->firstName = $first_name;
+ $profile->lastName = $last_name;
+ $profile->emailAddress = $email;
+ $profile->organization = $organization;
+ $profile->address = $address;
+ $profile->country = $country;
+ $profile->telephone = $telephone;
+ $profile->mobile = $mobile;
+ $profile->im = $im;
+ $profile->url = $url;
+
+ $this->userapi_client->createNewUser($username, $password, $profile, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to add new user", 0, NULL);
+ }
+ }
+
+ /**
+ * Get the user profile
+ * @param $username
+ * @return mixed|void
+ */
+ public function get_user_profile($username)
+ {
+ try{
+ $profile_obj = $this->userapi_client->getUserProfile($username, $this->getAPIToken());
+ $profile_arr = array();
+ $profile_arr['first_name'] = $profile_obj->firstName;
+ $profile_arr['last_name'] = $profile_obj->lastName;
+ $profile_arr['email_address'] = $profile_obj->emailAddress;
+ $profile_arr['organization'] = $profile_obj->organization;
+ $profile_arr['address'] = $profile_obj->address;
+ $profile_arr['country'] = $profile_obj->country;
+ $profile_arr['telephone'] = $profile_obj->telephone;
+ $profile_arr['mobile'] = $profile_obj->mobile;
+ $profile_arr['im'] = $profile_obj->im;
+ $profile_arr['url'] = $profile_obj->url;
+ return $profile_arr;
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get user profile", 0, NULL);
+ }
+ }
+
+ /**
+ * Update the user profile
+ *
+ * @param $username
+ * @param $first_name
+ * @param $last_name
+ * @param $email
+ * @param $organization
+ * @param $address
+ * @param $country
+ * @param $telephone
+ * @param $mobile
+ * @param $im
+ * @param $url
+ * @return mixed
+ */
+ public function update_user_profile($username, $first_name, $last_name, $email, $organization, $address,
+ $country, $telephone, $mobile, $im, $url)
+ {
+ try{
+ $profile = new UserProfile();
+ $profile->firstName = $first_name;
+ $profile->lastName = $last_name;
+ $profile->emailAddress = $email;
+ $profile->organization = $organization;
+ $profile->address = $address;
+ $profile->country = $country;
+ $profile->telephone = $telephone;
+ $profile->mobile = $mobile;
+ $profile->im = $im;
+ $profile->url = $url;
+ $this->userapi_client->updateUserProfile($username, $profile, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to update user profile", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to update user password
+ *
+ * @param $username
+ * @param $current_password
+ * @param $new_password
+ * @return mixed
+ */
+ public function change_password($username, $current_password, $new_password)
+ {
+ try{
+ $this->userapi_client->updateUserPassword($username, $new_password, $current_password, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to update user password", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to get the API token for the gateway
+ * @throws Exception
+ */
+ private function getAPIToken(){
+ $userapi_token_db = simplexml_load_file(self::USERAPI_TOKEN_DB_PATH);
+ $userapi_config = parse_ini_file(self::USER_API_CONFIG_PATH);
+ $token = $userapi_token_db->userapi_token[0]->token_string;
+ $issue_time = $userapi_token_db->userapi_token[0]->issue_time;
+ $life_time = $userapi_token_db->userapi_token[0]->life_time;
+ if (file_exists(self::USER_API_CONFIG_PATH)) {
+ if(empty($token) || (time()-$issue_time )>($life_time-5000)){
+ $authenticationResponse = $this->userapi_client->authenticateGateway($userapi_config['admin-username'],
+ $userapi_config['admin-password']);
+ $userapi_token_db->userapi_token[0]->token_string = $authenticationResponse->accessToken;
+ $token = $authenticationResponse->accessToken;
+ $userapi_token_db->userapi_token[0]->issue_time = time();
+ $userapi_token_db->userapi_token[0]->life_time = $authenticationResponse->expiresIn;
+
+ //Format XML to save indented tree rather than one line
+ $dom = new DOMDocument('1.0');
+ $dom->preserveWhiteSpace = false;
+ $dom->formatOutput = true;
+ $dom->loadXML($userapi_token_db->asXML());
+ $dom->save(self::USERAPI_TOKEN_DB_PATH);
+ }
+ } else {
+ throw new Exception("Error: Cannot open userapi_config.xml file!");
+ }
+ return $token;
+ }
+
+ /**
+ * Function to remove an existing user
+ *
+ * @param $username
+ * @return void
+ */
+ public function remove_user($username)
+ {
+ try{
+ $this->userapi_client->removeUser($username, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to remove user", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to check whether a user has permission for a particular permission string(api method).
+ *
+ * @param $username
+ * @param $permission_string
+ * @return bool
+ */
+ public function checkPermissionForUser($username, $permission_string)
+ {
+ try{
+ return $this->userapi_client->checkPermission($username,$permission_string, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to check permission for user", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to get all the permissions that a particular user has.
+ *
+ * @param $username
+ * @return mixed
+ */
+ public function getUserPermissions($username)
+ {
+ try{
+ $apiPermissions = $this->userapi_client->getUserPermissions($username, $this->getAPIToken());
+ $result['airavata-api'] = $apiPermissions->airavataAPIPermissions;
+ $result['app-catalog'] = $apiPermissions->airavataAppCatalogPermissions;
+ return $result;
+ } catch (Exception $ex) {
+ throw new Exception("Unable add user to role", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to get the entire list of roles in the application
+ *
+ * @return mixed
+ */
+ public function getRoleList()
+ {
+ try{
+ return $this->userapi_client->getAllRoleNames($this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get roles list", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to get the role list of a user
+ *
+ * @param $username
+ * @return mixed
+ */
+ public function getRoleListOfUser($username)
+ {
+ try{
+ return $this->userapi_client->getRoleListOfUser($username, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get role list of user", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to get the user list of a particular role
+ *
+ * @param $role
+ * @return mixed
+ */
+ public function getUserListOfRole($role)
+ {
+ try{
+ return $this->userapi_client->getUserListOfRole($role, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to get user list of role", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to add a role to a user
+ *
+ * @param $username
+ * @param $role
+ * @return mixed
+ */
+ public function addUserToRole($username, $role)
+ {
+ try{
+ return $this->userapi_client->addUserToRole($username,$role, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to add user to role", 0, NULL);
+ }
+ }
+
+ /**
+ * Function to role from user
+ *
+ * @param $username
+ * @param $role
+ * @return mixed
+ */
+ public function removeUserFromRole($username, $role)
+ {
+ try{
+ return $this->userapi_client->removeUserFromRole($username,$role, $this->getAPIToken());
+ } catch (Exception $ex) {
+ throw new Exception("Unable to remove user from role", 0, NULL);
+ }
+ }
+}