From 6e14ed1bb9dfa65e377922ab81a231963504cd9a Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Thu, 30 Aug 2012 08:58:38 -0400 Subject: [PATCH 1/2] BUG 9005 "userInfo() returns the state or region for the..." SOLVED - The ["city"] key is not correct in the function userInfo() - Problem solved, has improved informarion returned by the userInfo() function - They are more data being retormados by the userInfo() function, which are (example): Array ( [username] => "admin" [firstname] => "admin" [lastname] => "admin" [mail] => "admin@processmaker.com" [address] => "" [zipcode] => "" [country] => "" [state] => "" [location] => "" [phone] => "" [fax] => "" [cellular] => "" [birthday] => "2012-06-14" [position] => "" [replacedby] => "2806627024ff5c5e6de3343023039250" [duedate] => "2015-04-04" [calendar] => "426489683503e8e7541dd80068593828" [status] => "ACTIVE" [department] => "1624625814fdb4a23a20805048462289" [reportsto] => "4413935114fd9ea33a65206046642414" [userexperience] => "SWITCHABLE" [photo] => "PATH_TO_PHOTO/9552681404fd9e9ecd508b7074823254.gif" ) * Available from version 2.0.44 --- workflow/engine/classes/model/Users.php | 119 +++++++++++++++--------- 1 file changed, 75 insertions(+), 44 deletions(-) diff --git a/workflow/engine/classes/model/Users.php b/workflow/engine/classes/model/Users.php index 5d1aa082d..7f9e3a6e1 100755 --- a/workflow/engine/classes/model/Users.php +++ b/workflow/engine/classes/model/Users.php @@ -238,56 +238,87 @@ public function userExists($UsrUid) return $row; } - function getAllInformation($UsrUid) - { - if( !isset($UsrUid) or $UsrUid == '' ) { - throw new Exception('$UsrUid is empty.'); - } - try { + public function getAllInformation($userUid) + { + if (!isset($userUid) || $userUid == "") { + throw (new Exception("$userUid is empty.")); + } - require_once 'classes/model/IsoCountry.php'; - require_once 'classes/model/IsoLocation.php'; - require_once 'classes/model/IsoSubdivision.php'; - require_once 'classes/model/Language.php'; + try { + require_once ("classes/model/IsoCountry.php"); + require_once ("classes/model/IsoLocation.php"); + require_once ("classes/model/IsoSubdivision.php"); + require_once ("classes/model/Language.php"); - $aFields = $this->load($UsrUid); - $c = new Criteria('workflow'); - $c->add(IsoCountryPeer::IC_UID, $aFields['USR_COUNTRY']); - $rs = IsoCountryPeer::doSelectRS($c); - $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $rs->next(); - $Crow = $rs->getRow(); + G::LoadClass("calendar"); - $c->clearSelectColumns(); - $c->add(IsoSubdivisionPeer::IC_UID, $aFields['USR_COUNTRY']); - $c->add(IsoSubdivisionPeer::IS_UID, $aFields['USR_CITY']); - $rs = IsoSubdivisionPeer::doSelectRS($c); - $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); - $rs->next(); - $Srow = $rs->getRow(); + $aFields = $this->load($userUid); - $aRet['username'] = $aFields['USR_USERNAME']; - $aRet['firstname'] = $aFields['USR_FIRSTNAME']; - $aRet['lastname'] = $aFields['USR_LASTNAME']; - $aRet['mail'] = $aFields['USR_EMAIL']; - $aRet['status'] = $aFields['USR_STATUS']; - $aRet['address'] = $aFields['USR_ADDRESS']; - $aRet['phone'] = $aFields['USR_PHONE']; - $aRet['fax'] = $aFields['USR_FAX']; - $aRet['cellular'] = $aFields['USR_CELLULAR']; - $aRet['birthday'] = $aFields['USR_BIRTHDAY']; - $aRet['position'] = $aFields['USR_POSITION']; - $aRet['duedate'] = $aFields['USR_DUE_DATE']; - $aRet['country'] = $Crow['IC_NAME']; - $aRet['city'] = $Srow['IS_NAME']; + $c = new Criteria("workflow"); + $c->add(IsoCountryPeer::IC_UID, $aFields["USR_COUNTRY"]); + $rs = IsoCountryPeer::doSelectRS($c); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $rowC = $rs->getRow(); + $c->clearSelectColumns(); + $c->add(IsoSubdivisionPeer::IC_UID, $aFields["USR_COUNTRY"]); + $c->add(IsoSubdivisionPeer::IS_UID, $aFields["USR_CITY"]); + $rs = IsoSubdivisionPeer::doSelectRS($c); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $rowS = $rs->getRow(); - return $aRet; - } - catch (Exception $oException) { - throw $oException; - } - } + $c->clearSelectColumns(); + $c->add(IsoLocationPeer::IC_UID, $aFields["USR_COUNTRY"]); + $c->add(IsoLocationPeer::IL_UID, $aFields["USR_LOCATION"]); + $rs = IsoLocationPeer::doSelectRS($c); + $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $rs->next(); + $rowL = $rs->getRow(); + + //Calendar + $calendar = new Calendar(); + $calendarInfo = $calendar->getCalendarFor($userUid, $userUid, $userUid); + $aFields["USR_CALENDAR"] = ($calendarInfo["CALENDAR_APPLIED"] != "DEFAULT")? $calendarInfo["CALENDAR_UID"] : ""; + + //Photo + $pathPhoto = PATH_IMAGES_ENVIRONMENT_USERS . $userUid . ".gif"; + + if (!file_exists($pathPhoto)) { + $pathPhoto = PATH_HOME . "public_html" . PATH_SEP . "images" . PATH_SEP . "user.gif"; + } + + //Data + $arrayData = array(); + $arrayData["username"] = $aFields["USR_USERNAME"]; + $arrayData["firstname"] = $aFields["USR_FIRSTNAME"]; + $arrayData["lastname"] = $aFields["USR_LASTNAME"]; + $arrayData["mail"] = $aFields["USR_EMAIL"]; + $arrayData["address"] = $aFields["USR_ADDRESS"]; + $arrayData["zipcode"] = $aFields["USR_ZIP_CODE"]; + $arrayData["country"] = $rowC["IC_NAME"]; + $arrayData["state"] = $rowS["IS_NAME"]; + $arrayData["location"] = $rowL["IL_NAME"]; + $arrayData["phone"] = $aFields["USR_PHONE"]; + $arrayData["fax"] = $aFields["USR_FAX"]; + $arrayData["cellular"] = $aFields["USR_CELLULAR"]; + $arrayData["birthday"] = $aFields["USR_BIRTHDAY"]; + $arrayData["position"] = $aFields["USR_POSITION"]; + $arrayData["replacedby"] = $aFields["USR_REPLACED_BY"]; + $arrayData["duedate"] = $aFields["USR_DUE_DATE"]; + $arrayData["calendar"] = $aFields["USR_CALENDAR"]; + $arrayData["status"] = $aFields["USR_STATUS"]; + $arrayData["department"] = $aFields["DEP_UID"]; + $arrayData["reportsto"] = $aFields["USR_REPORTS_TO"]; + $arrayData["userexperience"] = $aFields["USR_UX"]; + $arrayData["photo"] = $pathPhoto; + + return $arrayData; + } catch (Exception $e) { + throw $e; + } + } function getAvailableUsersCriteria($sGroupUID = '') { From c5e130460ecf83ea0d2b7e14ce33dbc19f938b92 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Thu, 30 Aug 2012 16:02:50 -0400 Subject: [PATCH 2/2] BUG 4596 Filter the user/group list once added to the permission list and separate the user and group dropdown SOLVED - Changed the dropdown by a dropdown with optgroups --- workflow/engine/classes/class.processMap.php | 61 ++++-- .../processes_EditObjectPermission.html | 76 +++++++ .../processes_EditObjectPermission.xml | 202 +++++++++++++----- .../processes_NewObjectPermission.html | 26 +-- .../processes_NewObjectPermission.xml | 40 ++-- 5 files changed, 298 insertions(+), 107 deletions(-) create mode 100644 workflow/engine/xmlform/processes/processes_EditObjectPermission.html diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 9474b5ab4..1e69195ad 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -3551,29 +3551,39 @@ class processMap { * @return boolean true */ function newObjectPermission($sProcessUID) { - $aUsersGroups = array(); - $aUsersGroups [] = array('UID' => 'char', 'LABEL' => 'char'); + $usersGroups = ''; $aAllObjects = array(); $aAllObjects [] = array('UID' => 'char', 'LABEL' => 'char'); $aAllDynaforms = array(); @@ -3617,7 +3627,6 @@ class processMap { } global $_DBArray; $_DBArray = (isset($_SESSION ['_DBArray']) ? $_SESSION ['_DBArray'] : ''); - $_DBArray ['usersGroups'] = $aUsersGroups; $_DBArray ['allObjects'] = $aAllObjects; $_DBArray ['allDynaforms'] = $aAllDynaforms; $_DBArray ['allInputs'] = $aAllInputs; @@ -3625,7 +3634,7 @@ class processMap { $_SESSION ['_DBArray'] = $_DBArray; global $G_PUBLISH; $G_PUBLISH = new Publisher ( ); - $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_NewObjectPermission', '', array('LANG' => SYS_LANG, 'PRO_UID' => $sProcessUID, 'ID_DELETE' => G::LoadTranslation('ID_DELETE')), 'processes_SaveObjectPermission'); + $G_PUBLISH->AddContent('xmlform', 'xmlform', 'processes/processes_NewObjectPermission', '', array('GROUP_USER' => $usersGroups, 'LANG' => SYS_LANG, 'PRO_UID' => $sProcessUID, 'ID_DELETE' => G::LoadTranslation('ID_DELETE')), 'processes_SaveObjectPermission'); G::RenderPage('publish', 'raw'); return true; } @@ -3661,7 +3670,6 @@ class processMap { $aFields ['PRO_UID'] = $aRows ['PRO_UID']; $aFields ['OP_CASE_STATUS'] = $aRows ['OP_CASE_STATUS']; $aFields ['TAS_UID'] = $aRows ['TAS_UID']; - $aFields ['GROUP_USER'] = $user; $aFields ['OP_TASK_SOURCE'] = $aRows ['OP_TASK_SOURCE']; $aFields ['OP_PARTICIPATE'] = $aRows ['OP_PARTICIPATE']; $aFields ['OP_OBJ_TYPE'] = $aRows ['OP_OBJ_TYPE']; @@ -3682,8 +3690,7 @@ class processMap { break; } - $aUsersGroups = array(); - $aUsersGroups [] = array('UID' => 'char', 'LABEL' => 'char'); + $usersGroups = ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$form.TITLE}
{$form.PRO_UID}
{$form.OP_UID}
{$OP_CASE_STATUS}{$form.OP_CASE_STATUS}
{$TAS_UID}{$form.TAS_UID}
{$GROUP_USER}{$form.GROUP_USER_DROPDOWN}
{$OP_TASK_SOURCE}{$form.OP_TASK_SOURCE}
{$OP_PARTICIPATE}{$form.OP_PARTICIPATE}
{$OP_OBJ_TYPE}{$form.OP_OBJ_TYPE}
{$ALL}{$form.ALL}
{$DYNAFORMS}{$form.DYNAFORMS}
{$INPUTS}{$form.INPUTS}
{$OUTPUTS}{$form.OUTPUTS}
{$OP_ACTION}{$form.OP_ACTION}
{$form.CREATE}
+ + + + +
+ + + \ No newline at end of file diff --git a/workflow/engine/xmlform/processes/processes_EditObjectPermission.xml b/workflow/engine/xmlform/processes/processes_EditObjectPermission.xml index 51636b081..ce37257b1 100755 --- a/workflow/engine/xmlform/processes/processes_EditObjectPermission.xml +++ b/workflow/engine/xmlform/processes/processes_EditObjectPermission.xml @@ -1,8 +1,8 @@ - + <en>Edit Specific Permission</en> -<es><![CDATA[Nuevo permiso especĂ­fico]]></es> + @@ -13,109 +13,201 @@ - - Estado del Caso - - + + -Target Task + + + Target Task + + - -SELECT * FROM usersGroups + Group or User -Origin Task + + + + Origin Task Participation required? - Type - - - - + + + + + -SELECT * FROM allObjects - Object + SELECT * FROM allObjects + Object + + -SELECT * FROM allDynaforms + SELECT * FROM allDynaforms DynaForm -SELECT * FROM allInputs + SELECT * FROM allInputs Input Document -SELECT * FROM allOutputs + SELECT * FROM allOutputs Output Document - Permission + Permission + Save +
@@ -17,57 +17,57 @@ {$OP_CASE_STATUS} - {$form.OP_CASE_STATUS} + {$form.OP_CASE_STATUS} {$TAS_UID} - {$form.TAS_UID} + {$form.TAS_UID} {$GROUP_USER} - {$form.GROUP_USER} + {$form.GROUP_USER_DROPDOWN} {$OP_TASK_SOURCE} - {$form.OP_TASK_SOURCE} + {$form.OP_TASK_SOURCE} {$OP_PARTICIPATE} - {$form.OP_PARTICIPATE} + {$form.OP_PARTICIPATE} {$OP_OBJ_TYPE} - {$form.OP_OBJ_TYPE} + {$form.OP_OBJ_TYPE} {$ALL} - {$form.ALL} + {$form.ALL} {$DYNAFORMS} - {$form.DYNAFORMS} + {$form.DYNAFORMS} {$INPUTS} - {$form.INPUTS} + {$form.INPUTS} {$OUTPUTS} - {$form.OUTPUTS} + {$form.OUTPUTS} {$OP_ACTION} - {$form.OP_ACTION} + {$form.OP_ACTION}
{$form.CREATE}   {$form.BTN_CANCEL} @@ -82,4 +82,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/workflow/engine/xmlform/processes/processes_NewObjectPermission.xml b/workflow/engine/xmlform/processes/processes_NewObjectPermission.xml index 03aa118bf..785ef8ae9 100755 --- a/workflow/engine/xmlform/processes/processes_NewObjectPermission.xml +++ b/workflow/engine/xmlform/processes/processes_NewObjectPermission.xml @@ -6,12 +6,14 @@ + - Status Case - - - - + Status Case + + + + + @@ -21,11 +23,13 @@ - - SELECT * FROM usersGroups + + Group or User + + Origin Task @@ -69,7 +73,7 @@ Create -CreateCriar + - \ No newline at end of file + \ No newline at end of file