login( $params->userid, $params->password ); return $res->getPayloadArray ( ); } function ProcessList( $params ) { $x = ifPermission( $params->sessionId, 'PM_FACTORY'); //if you are not an admin user, then this function will return only //your valid process if ( $x==0 ) { G::LoadClass('sessions'); $oSessions = new Sessions(); $session = $oSessions->getSessionUser($params->sessionId); $userId = $session['USR_UID']; G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->processListVerified( $userId ); return $res; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->processList( ); return array("processes" => $res ); } function RoleList( $params ) { $x = ifPermission( $params->sessionId, 'PM_USERS'); if($x==0) { $result[] = array ( 'guid' => 24, 'name' => 'You do not have privileges' ); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->roleList( ); return array("roles" => $res ); } function GroupList( $params ) { $x = ifPermission( $params->sessionId, 'PM_USERS'); if($x==0) { $result[] = array ( 'guid' => 24, 'name' => 'You do not have privileges' ); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->groupList( ); return array("groups" => $res ); } function CaseList( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); return new wsResponse (9, 'Session expired'); } G::LoadClass('sessions'); $oSessions = new Sessions(); $session = $oSessions->getSessionUser($params->sessionId); $userId = $session['USR_UID']; G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->caseList( $userId ); return array("cases" => $res ); } function UserList( $params ) { $x = ifPermission( $params->sessionId, 'PM_USERS'); if($x==0) { $result[] = array ( 'guid' => 24, 'name' => 'You do not have privileges' ); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->userList( ); return array("users" => $res ); } function SendMessage( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->sendMessage( $params->caseId, $params->from, $params->to, $params->cc, $params->bcc, $params->subject, $params->template); return $res->getPayloadArray ( ) ; } function getCaseInfo( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->getCaseInfo( $params->caseId, $params->delIndex ); return $res; } function SendVariables( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $variables = $params->variables; if ( is_object ($variables) ) { $Fields[ $variables->name ]= $variables->value ; } if ( is_array ( $variables) ) { foreach ( $variables as $key=>$val ){ $name = $val->name; $value = $val->value; eval('$Fields[ ' . $val->name . ' ]= $val->value ;'); } } $params->variables = $Fields; $res = $ws->sendVariables($params->caseId, $params->variables); return $res->getPayloadArray ( ) ; } function GetVariables( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->getVariables($params->caseId, $params->variables); return array("variables" => $res ); } function DerivateCase( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } $oSession = new Sessions(); $user = $oSession->getSessionUser($params->sessionId); G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->derivateCase($user['USR_UID'], $params->caseId, $params->delIndex); return $res; //return $res->getPayloadArray ( ); } function executeTrigger ( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } $oSession = new Sessions(); $user = $oSession->getSessionUser($params->sessionId); G::LoadClass('wsBase'); $ws = new wsBase (); $delIndex = ( isset ( $params->delIndex ) ) ? $params->delIndex : 1 ; $res = $ws->executeTrigger( $user['USR_UID'], $params->caseId, $params->triggerIndex, $delIndex); return $res->getPayloadArray ( ); } function NewCaseImpersonate( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $variables = $params->variables; foreach ( $variables as $key=>$val ){ $name = $val->name; $value = $val->value; eval('$Fields[ ' . $val->name . ' ]= $val->value ;'); } $params->variables = $Fields; $res = $ws->newCaseImpersonate($params->processId, $params->userId, $params->variables); return $res->getPayloadArray ( ) ; } function NewCase( $params ) { G::LoadClass('wsBase'); G::LoadClass('sessions'); ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } $oSessions = new Sessions(); $session = $oSessions->getSessionUser($params->sessionId); $userId = $session['USR_UID']; $variables = $params->variables; if (!isset($params->variables) ) { $variables = array(); $Fields = array(); } else { if ( is_object ($variables) ) { /*foreach ( $variables as $key=>$val ) { $name = $val->name; $value = $val->value; $Fields[ $val->name ]= $val->value ; }*/ $Fields[ $variables->name ]= $variables->value ; } if ( is_array ( $variables) ) { foreach ( $variables as $key=>$val ) { $name = $val->name; $value = $val->value; if (!is_object($val->value)) { eval('$Fields[ ' . $val->name . ' ]= $val->value ;'); } else { if (is_array($val->value->item)) { $i = 1; foreach ($val->value->item as $key1 => $val1) { if (isset($val1->value)) { if (is_array($val1->value->item)) { foreach ($val1->value->item as $key2 => $val2) { $Fields[$val->name][$i][$val2->key] = $val2->value; } } } $i++; } } } } } } $params->variables = $Fields; //$result = new wsResponse (900, print_r($params->variables,1)); //return $result; $ws = new wsBase (); $res = $ws->newCase($params->processId, $userId, $params->taskId, $params->variables); return $res; } function AssignUserToGroup( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_USERS'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('sessions'); $sessions = new Sessions; $user=$sessions->getSessionUser($params->sessionId); if(!is_array($user)) { G::LoadClass('wsResponse'); return new wsResponse (3, 'User not registered in the system'); } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->assignUserToGroup( $params->userId, $params->groupId); return $res->getPayloadArray ( ) ; } function CreateUser( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_USERS'); if($x==0) { G::LoadClass('wsResponse'); $result = new wsResponse (24, "You do not have privileges"); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->createUser( $params->userId, $params->firstname, $params->lastname, $params->email, $params->role, $params->password); return $res->getPayloadArray ( ) ; } function TaskList( $params ) { $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { $result[] = array ( 'guid' => 24, 'name' => 'You do not have privileges' ); return $result; } G::LoadClass('wsBase'); G::LoadClass('sessions'); $ws = new wsBase (); $oSessions = new Sessions(); $session = $oSessions->getSessionUser($params->sessionId); $userId = $session['USR_UID']; $res = $ws->taskList( $userId ); return array("tasks" => $res ); } function TaskCase( $params ) { ifSessionExpiredBreakThis($params->sessionId); $x = ifPermission( $params->sessionId, 'PM_CASES'); if($x==0) { $result[] = array ( 'guid' => 24, 'name' => 'You do not have privileges' ); return $result; } G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->taskCase( $params->caseId ); return array("taskCases" => $res ); } function ReassignCase( $params ) { ifSessionExpiredBreakThis($params->sessionId); //G::LoadClass('wsResponse'); //return new wsResponse (1, print_r($params,1)); G::LoadClass('wsBase'); $ws = new wsBase (); $res = $ws->reassignCase($params->sessionId, $params->caseId, $params->delIndex, $params->userIdSource, $params->userIdTarget ); return $res ; } function ifSessionExpiredBreakThis($sessionId){ #added By Erik AO in datetime 26.06.2008 10:00:00 G::LoadClass('sessions'); $oSessions = new Sessions(); $session = $oSessions->verifySession($sessionId); if($session == '') { G::LoadClass('wsResponse'); return new wsResponse (9, 'Session expired'); } } function ifPermission( $sessionId, $permission ){ global $RBAC; $RBAC->initRBAC(); G::LoadClass('sessions'); $oSession = new Sessions(); $user = $oSession->getSessionUser($sessionId); $oRBAC = RBAC::getSingleton(); $oRBAC->loadUserRolePermission($oRBAC->sSystem, $user['USR_UID']); $aPermissions = $oRBAC->aUserInfo[$oRBAC->sSystem]['PERMISSIONS']; $sw=0; foreach ($aPermissions as $aPermission) { if ($aPermission['PER_CODE'] == $permission) { $sw=1; } } return $sw; } $server = new SoapServer( $wsdl ); $server->addFunction("Login"); $server->addFunction("ProcessList"); $server->addFunction("CaseList"); $server->addFunction("RoleList"); $server->addFunction("GroupList"); $server->addFunction("UserList"); $server->addFunction("SendMessage"); $server->addFunction("SendVariables"); $server->addFunction("GetVariables"); $server->addFunction("DerivateCase"); $server->addFunction("executeTrigger"); $server->addFunction("NewCaseImpersonate"); $server->addFunction("NewCase"); $server->addFunction("AssignUserToGroup"); $server->addFunction("CreateUser"); $server->addFunction("getCaseInfo"); $server->addFunction("TaskList"); $server->addFunction("TaskCase"); $server->addFunction("ReassignCase"); $server->handle();