diff --git a/workflow/engine/content/translations/english/processmaker.en.po b/workflow/engine/content/translations/english/processmaker.en.po index 731b29178..2e3e9a890 100644 --- a/workflow/engine/content/translations/english/processmaker.en.po +++ b/workflow/engine/content/translations/english/processmaker.en.po @@ -27293,6 +27293,12 @@ msgstr "Please try later." msgid "There was a problem sending the email to" msgstr "There was a problem sending the email to" +# TRANSLATION +# LABEL/ID_USER_CANT_BE_DELETED_FOR_THE_PROCESS +#: LABEL/ID_USER_CANT_BE_DELETED_FOR_THE_PROCESS +msgid "The user can't be deleted because it is referenced in the process {processTitle} in a process permission." +msgstr "The user can't be deleted because it is referenced in the process {processTitle} in a process permission." + # TRANSLATION # LABEL/ID_MAFE_c5d84b6c19cb058b7b5471b30e926823 #: LABEL/ID_MAFE_c5d84b6c19cb058b7b5471b30e926823 diff --git a/workflow/engine/data/mssql/insert.sql b/workflow/engine/data/mssql/insert.sql index c6c4f357c..55b0c19b7 100755 --- a/workflow/engine/data/mssql/insert.sql +++ b/workflow/engine/data/mssql/insert.sql @@ -10612,6 +10612,8 @@ SELECT 'LABEL','ID_PLEASE_TRY_LATER','en','Please try later.','2016-03-30' UNION ALL SELECT 'LABEL','ID_THERE_PROBLEM_SENDING_EMAIL','en','There was a problem sending the email to','2016-03-30' UNION ALL +SELECT 'LABEL','ID_USER_CANT_BE_DELETED_FOR_THE_PROCESS','en','The user can''t be deleted because it is referenced in the process {processTitle} in a process permission.','2016-04-18' + UNION ALL SELECT 'LABEL','ID_MAFE_c5d84b6c19cb058b7b5471b30e926823','en','Invalid operation: Delete message flow before converting it to','2016-03-30' UNION ALL SELECT 'LABEL','ID_MAFE_be1a57f7e1cfe44284e71c5175874967','en','Event','2016-03-30' diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 3a8f99cfe..a10adf9fe 100644 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -6069,6 +6069,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_UNABLE_TO_SEND_EMAIL','en','Unable to send email, the task is closed.','2016-03-30') , ( 'LABEL','ID_PLEASE_TRY_LATER','en','Please try later.','2016-03-30') , ( 'LABEL','ID_THERE_PROBLEM_SENDING_EMAIL','en','There was a problem sending the email to','2016-03-30') , +( 'LABEL','ID_USER_CANT_BE_DELETED_FOR_THE_PROCESS','en','The user can''t be deleted because it is referenced in the process {processTitle} in a process permission.','2016-04-18') , ( 'LABEL','ID_MAFE_c5d84b6c19cb058b7b5471b30e926823','en','Invalid operation: Delete message flow before converting it to','2016-03-30') , ( 'LABEL','ID_MAFE_be1a57f7e1cfe44284e71c5175874967','en','Event','2016-03-30') , ( 'LABEL','ID_MAFE_d8012aca7276ee78d2e2bd33861d72a1','en','At least one object should be selected in order to execute the action.','2016-03-30') , diff --git a/workflow/engine/methods/users/users_Ajax.php b/workflow/engine/methods/users/users_Ajax.php index 92457619e..03653c328 100644 --- a/workflow/engine/methods/users/users_Ajax.php +++ b/workflow/engine/methods/users/users_Ajax.php @@ -197,6 +197,34 @@ try { break; case 'deleteUser': $UID = $_POST['USR_UID']; + + //process permissions + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(ObjectPermissionPeer::USR_UID); + $criteria->addSelectColumn(ObjectPermissionPeer::PRO_UID); + $criteria->add(ObjectPermissionPeer::OP_USER_RELATION, 1, Criteria::EQUAL); + $criteria->add(ObjectPermissionPeer::USR_UID, $UID, Criteria::EQUAL); + $doSelectRS = DynaformPeer::doSelectRS($criteria); + $doSelectRS->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $doSelectRS->next(); + $objectPermision = $doSelectRS->getRow(); + if (isset($objectPermision["USR_UID"])) { + $criteria = new Criteria("workflow"); + $criteria->addSelectColumn(ContentPeer::CON_VALUE); + $criteria->add(ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL); + $criteria->add(ContentPeer::CON_ID, $objectPermision["PRO_UID"], Criteria::EQUAL); + $criteria->add(ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL); + $doSelectRS = ContentPeer::doSelectRS($criteria); + $doSelectRS->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $doSelectRS->next(); + $content = $doSelectRS->getRow(); + echo G::json_encode(array( + "status" => 'ERROR', + "message" => G::LoadTranslation('ID_USER_CANT_BE_DELETED_FOR_THE_PROCESS', array('processTitle' => isset($content["CON_VALUE"]) ? $content["CON_VALUE"] : $objectPermision['PRO_UID'])) + )); + break; + } + G::LoadClass('tasks'); $oTasks = new Tasks(); $oTasks->ofToAssignUserOfAllTasks($UID); diff --git a/workflow/engine/templates/users/usersList.js b/workflow/engine/templates/users/usersList.js index a386e9da7..6ec0e316d 100755 --- a/workflow/engine/templates/users/usersList.js +++ b/workflow/engine/templates/users/usersList.js @@ -638,6 +638,11 @@ DeleteUser = function(uid){ url: 'users_Ajax', params: {'function': 'deleteUser', USR_UID: uid}, success: function(res, opt){ + var response = Ext.util.JSON.decode(res.responseText); + if (response.status === 'ERROR') { + Ext.Msg.alert(_('ID_USERS'), response.message); + return; + } DoSearch(); PMExt.notify(_('ID_USERS'),_('ID_USERS_SUCCESS_DELETE')); },