add remove users from group webservices

This commit is contained in:
Alvaro Campos
2011-02-02 21:29:47 +00:00
parent b5857edbfd
commit 4e07c61241
6 changed files with 196 additions and 78 deletions

View File

@@ -934,6 +934,49 @@ class wsBase
}
}
/*
* remove user from group
* @param string $appDocUid
* @return $result will return an object
*/
public function removeUserFromGroup($userId, $groupId) {
try {
G::LoadClass('groups');
global $RBAC;
$RBAC->initRBAC();
$user=$RBAC->verifyUserId($userId);
if($user==0){
$result = new wsResponse (3, "User not registered in the system");
return $result;
}
$groups = new Groups;
$very_group = $groups->verifyGroup( $groupId );
if ( $very_group==0 ) {
$result = new wsResponse (9, "Group not registered in the system");
return $result;
}
$very_user = $groups->verifyUsertoGroup( $groupId, $userId);
if($very_user==1){
$oGroup = new Groups();
$oGroup->removeUserOfGroup($groupId, $userId);
$result = new wsResponse (0, "command executed successfuly");
return $result;
}
//$oGroup->removeUserOfGroup($_POST['GRP_UID'], $_POST['USR_UID']);
$result = new wsResponse (8, "User not registered in the group");
return $result;
}
catch ( Exception $e ) {
$result = new wsResponse (100, $e->getMessage());
return $result;
}
//G::LoadClass('groups');
// $oGroup = new Groups();
// $oGroup->removeUserOfGroup($_POST['GRP_UID'], $_POST['USR_UID']);
}
/*
* assigns a user to a group
* @param string $userId
@@ -2028,4 +2071,6 @@ class wsBase
}
}
}

View File

@@ -221,6 +221,15 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="removeUserFromGroupRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="sessionId" type="xs:string"/>
<xs:element name="userId" type="xs:string"/>
<xs:element name="groupId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="assignUserToDepartmentRequest">
<xs:complexType>
<xs:sequence>
@@ -788,6 +797,10 @@
<message name="importProcessFromLibraryResponse">
<part name="parameters" element="xs0:importProcessFromLibraryResponse"/>
</message>
<message name="removeUserFromGroupRequest">
<part name="parameters" element="xs0:removeUserFromGroupRequest"/>
</message>
<portType name="ProcessMakerServiceSoap">
<operation name="login">
<input message="xs0:loginRequest"/>
@@ -909,6 +922,10 @@
<input message="xs0:importProcessFromLibraryRequest"/>
<output message="xs0:importProcessFromLibraryResponse"/>
</operation>
<operation name="removeUserFromGroup">
<input message="xs0:removeUserFromGroupRequest"/>
<output message="xs0:pmResponse"/>
</operation>
</portType>
<binding name="ProcessMakerServiceSoap" type="xs0:ProcessMakerServiceSoap">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
@@ -1182,6 +1199,15 @@
<soap12:body use="literal"/>
</output>
</operation>
<operation name="removeUserFromGroup">
<soap12:operation soapAction="urn:removeUserFromGroup" soapActionRequired="true" style="document"/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
</binding>
<service name="ProcessMakerService">
<documentation>ProcessMaker Web Service</documentation>

View File

@@ -557,7 +557,7 @@
if ( is_array ( $variables) ) {
foreach ( $variables as $key=>$val ) {
if (!is_object($val->value)){
eval('$Fields[ "' . $val->name . '" ]= $val->value ;');
eval('$Fields[ ' . $val->name . ' ]= $val->value ;');
}
}
}
@@ -762,7 +762,18 @@
return new wsResponse (9, 'Session expired');
}
}
//add removeUserFromGroup
function removeUserFromGroup( $params ) {
$vsResult = isValidSession($params->sessionId);
if( $vsResult->status_code !== 0 ){
return $vsResult;
}
$ws = new wsBase ();
$res = $ws->removeUserFromGroup($params->userId, $params->groupId);
return $res ;
}
//end add
function ifPermission( $sessionId, $permission ){
global $RBAC;
$RBAC->initRBAC();
@@ -816,6 +827,6 @@ $server->addFunction("TaskCase");
$server->addFunction("ReassignCase");
$server->addFunction("systemInformation");
$server->addFunction("importProcessFromLibrary");
$server->addFunction("removeUserFromGroup");
$server->handle();

View File

@@ -1075,7 +1075,25 @@ switch ($_POST ['action']) {
G::RenderPage ( 'publish', 'raw' );
break;
//add removeUserFromGroup
case "removeUserFromGroup" :
$sessionId = $frm ["SESSION_ID"];
$userId = $frm ["USER_ID"];
$groupId = $frm ["GROUP_ID"];
$params = array ('sessionId' => $sessionId, 'userId' => $userId, 'groupId' => $groupId );
$result = $client->__SoapCall ( 'removeUserFromGroup', array ($params ) );
$G_PUBLISH = new Publisher ( );
$fields ['status_code'] = $result->status_code;
$fields ['message'] = $result->message;
$fields ['time_stamp'] = $result->timestamp;
if( $result->status_code == 9 ){
$_SESSION ['WS_SESSION_ID'] = '';
}
$G_PUBLISH->AddContent ( 'xmlform', 'xmlform', 'setup/wsShowResult', null, $fields );
G::RenderPage ( 'publish', 'raw' );
break;
//end add
case "RemoveDocument" :
$appDocUid = $frm ["APP_DOC_UID"];
$sessionId = $frm ["SESSION_ID"];

View File

@@ -104,6 +104,7 @@ $allWebservices [] = 'OutputDocumentList';
$allWebservices [] = 'RemoveDocument';
$allWebservices [] = 'TaskCase';
$allWebservices [] = 'ReassignCase';
$allWebservices [] = 'removeUserFromGroup';
foreach ( $allWebservices as $ws ) {
$ID_TEST = G::LoadTranslation ( 'ID_TEST' );

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="webservices" width="500" mode="edit" border="0" enableTemplate="0" height="105px">
<SESSION_ID type="text" size="36" maxlength="32">
<en>Session Id</en>
</SESSION_ID>
<USER_ID type="dropdown" sqlConnection="dbarray">
SELECT * from user
<en>User ID</en>
<GROUP_ID type="dropdown" sqlConnection="dbarray">
SELECT * from group
<en>Group ID</en>
<ACTION type="hidden">
</ACTION>
<ACTIONB type="button" onclick="submitThisForm(this.form);">
<en>RemoveUserToGroup</en>
</ACTIONB>
</dynaForm>