Merge remote-tracking branch 'upstream/3.1' into HOR-1087
This commit is contained in:
@@ -343,36 +343,39 @@ class Groupwf extends BaseGroupwf
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getAllGroup ($start = null, $limit = null, $search = null, $sortField = null, $sortDir = null)
|
||||
public function getAllGroup($start = null, $limit = null, $search = null, $sortField = null, $sortDir = null)
|
||||
{
|
||||
require_once PATH_RBAC . "model/RbacUsers.php";
|
||||
require_once 'classes/model/TaskUser.php';
|
||||
require_once 'classes/model/GroupUser.php';
|
||||
|
||||
$sDelimiter = DBAdapter::getStringDelimiter();
|
||||
$aConditions = [
|
||||
[GroupwfPeer::GRP_UID, 'C.CON_ID'],
|
||||
['C.CON_CATEGORY', $sDelimiter . 'GRP_TITLE' . $sDelimiter],
|
||||
['C.CON_LANG', 'if((SELECT COUNT(S.CON_ID) FROM CONTENT AS S WHERE S.CON_ID=C.CON_ID AND S.CON_CATEGORY=C.CON_CATEGORY AND S.CON_LANG=' . $sDelimiter . SYS_LANG . $sDelimiter . ')>0,' . $sDelimiter . SYS_LANG . $sDelimiter . ',' . $sDelimiter . 'en' . $sDelimiter . ')']
|
||||
];
|
||||
$totalCount = 0;
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( GroupwfPeer::GRP_UID );
|
||||
$criteria->addJoin( GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
|
||||
$criteria->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->addSelectColumn(GroupwfPeer::GRP_UID);
|
||||
$criteria->addAlias('C', 'CONTENT');
|
||||
$criteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
|
||||
|
||||
if ($search) {
|
||||
$criteria->add( ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE );
|
||||
$criteria->add('C.CON_VALUE', '%' . $search . '%', Criteria::LIKE);
|
||||
}
|
||||
|
||||
$totalRows = GroupwfPeer::doCount( $criteria );
|
||||
$totalRows = GroupwfPeer::doCount($criteria);
|
||||
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->addSelectColumn( GroupwfPeer::GRP_UID );
|
||||
$criteria->addSelectColumn( GroupwfPeer::GRP_STATUS );
|
||||
$criteria->addSelectColumn( GroupwfPeer::GRP_UX );
|
||||
$criteria->addAsColumn( 'GRP_TITLE', ContentPeer::CON_VALUE );
|
||||
$criteria->addJoin( GroupwfPeer::GRP_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN );
|
||||
$criteria->add( ContentPeer::CON_CATEGORY, 'GRP_TITLE' );
|
||||
$criteria->add( ContentPeer::CON_LANG, SYS_LANG );
|
||||
$criteria = new Criteria('workflow');
|
||||
$criteria->addSelectColumn(GroupwfPeer::GRP_UID);
|
||||
$criteria->addSelectColumn(GroupwfPeer::GRP_STATUS);
|
||||
$criteria->addSelectColumn(GroupwfPeer::GRP_UX);
|
||||
$criteria->addAlias('C', 'CONTENT');
|
||||
$criteria->addAsColumn('GRP_TITLE', 'C.CON_VALUE');
|
||||
$criteria->addJoinMC($aConditions, Criteria::LEFT_JOIN);
|
||||
|
||||
if (is_null($sortField) || trim($sortField) == "") {
|
||||
$sortField = ContentPeer::CON_VALUE;
|
||||
$sortField = 'GRP_TITLE';
|
||||
}
|
||||
|
||||
if (!is_null($sortDir) && trim($sortDir) != "" && strtoupper($sortDir) == "DESC") {
|
||||
@@ -382,29 +385,28 @@ class Groupwf extends BaseGroupwf
|
||||
}
|
||||
|
||||
if ($start != '') {
|
||||
$criteria->setOffset( $start );
|
||||
$criteria->setOffset($start);
|
||||
}
|
||||
|
||||
if ($limit != '') {
|
||||
$criteria->setLimit( $limit );
|
||||
$criteria->setLimit($limit);
|
||||
}
|
||||
|
||||
if ($search) {
|
||||
$criteria->add( ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE );
|
||||
$criteria->add('C.CON_VALUE', '%' . $search . '%', Criteria::LIKE);
|
||||
}
|
||||
|
||||
$oDataset = GroupwfPeer::doSelectRS( $criteria );
|
||||
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
|
||||
$processes = Array ();
|
||||
$uids = array ();
|
||||
$groups = array ();
|
||||
$aGroups = array ();
|
||||
$oDataset = GroupwfPeer::doSelectRS($criteria);
|
||||
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
$processes = array();
|
||||
$uids = array();
|
||||
$groups = array();
|
||||
$aGroups = array();
|
||||
while ($oDataset->next()) {
|
||||
$groups[] = $oDataset->getRow();
|
||||
}
|
||||
|
||||
return array ('rows' => $groups,'totalCount' => $totalRows
|
||||
);
|
||||
return array('rows' => $groups, 'totalCount' => $totalRows);
|
||||
}
|
||||
|
||||
public function filterGroup ($filter, $start, $limit)
|
||||
|
||||
@@ -74,7 +74,7 @@ try {
|
||||
G::LoadClass('pmDynaform');
|
||||
$FieldsPmDynaform = $applicationFields;
|
||||
$FieldsPmDynaform["CURRENT_DYNAFORM"] = $_REQUEST['DYN_UID'];
|
||||
$a = new pmDynaform($FieldsPmDynaform);
|
||||
$a = new pmDynaform(\ProcessMaker\Util\DateTime::convertUtcToTimeZone($FieldsPmDynaform));
|
||||
$a->printView();
|
||||
}
|
||||
if (file_exists( PATH_DYNAFORM . $applicationFields['PRO_UID'] . PATH_SEP . $_REQUEST['DYN_UID'] . '.xml' )) {
|
||||
|
||||
@@ -169,6 +169,115 @@ class User
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign users to groups
|
||||
*
|
||||
* @param array $arrayData Data of users and groups
|
||||
*
|
||||
* return array Return result
|
||||
*/
|
||||
public function createBatch(array $arrayData)
|
||||
{
|
||||
try {
|
||||
//Verify data
|
||||
if (empty($arrayData)) {
|
||||
throw new \Exception(\G::LoadTranslation('ID_INFORMATION_EMPTY'));
|
||||
}
|
||||
|
||||
$arrayAux = [];
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$arrayAux = $value;
|
||||
|
||||
if (!isset($arrayAux['groupUid'])){
|
||||
throw new \Exception(\G::LoadTranslation('ID_DOES_NOT_EXIST', ['groupUid']));
|
||||
}
|
||||
|
||||
if (gettype($arrayAux['groupUid']) != 'string'){
|
||||
throw new \Exception(\G::LoadTranslation('ID_INVALID_VALUE_STRING', ['groupUid']));
|
||||
}
|
||||
|
||||
if (!isset($arrayAux['users'])) {
|
||||
throw new \Exception(\G::LoadTranslation('ID_DOES_NOT_EXIST', ['users']));
|
||||
}
|
||||
|
||||
if(gettype($arrayAux['users']) != 'array') {
|
||||
throw new \Exception(\G::LoadTranslation('ID_INVALID_VALUE_ARRAY', ['users']));
|
||||
}
|
||||
}
|
||||
|
||||
//Assign
|
||||
$group = new \Groupwf();
|
||||
|
||||
$arrayResult = [];
|
||||
$arrayUsrGrp = [];
|
||||
|
||||
foreach ($arrayData as $value) {
|
||||
$flagAssignGrp = 1;
|
||||
$arrayMsg = [];
|
||||
|
||||
$arrayUsrGrp = $value;
|
||||
|
||||
//Verify data
|
||||
$grpUid = \GroupwfPeer::retrieveByPK($arrayUsrGrp['groupUid']);
|
||||
|
||||
if (is_null($grpUid)) {
|
||||
$arrayMsg['groupUid'] = [$arrayUsrGrp['groupUid'] => 'GROUP_NOT_EXISTS'];
|
||||
$flagAssignGrp = 0;
|
||||
}
|
||||
|
||||
if ($flagAssignGrp == 1) {
|
||||
$arrayMsg['groupUid'] = [$arrayUsrGrp['groupUid'] => 'GROUP_EXISTS'];
|
||||
|
||||
$arrayUsr = $arrayUsrGrp['users'];
|
||||
$arrayResultUsr = [];
|
||||
|
||||
foreach ($arrayUsr as $valueUidUser) {
|
||||
$flagAssignUsr = 1;
|
||||
|
||||
//Verify data
|
||||
$userUid = \UsersPeer::retrieveByPK($valueUidUser);
|
||||
|
||||
if (is_null($userUid)) {
|
||||
$arrayResultUsr[$valueUidUser] = 'USER_NOT_EXISTS';
|
||||
$flagAssignUsr = 0;
|
||||
}
|
||||
|
||||
if ($flagAssignUsr == 1 && $userUid->getUsrStatus() == 'CLOSED') {
|
||||
$arrayResultUsr[$valueUidUser] = 'USER_INACTIVE';
|
||||
$flagAssignUsr = 0;
|
||||
}
|
||||
|
||||
$groupUser = \GroupUserPeer::retrieveByPK($arrayUsrGrp['groupUid'], $valueUidUser);
|
||||
|
||||
if ($flagAssignUsr == 1 && !is_null($groupUser)) {
|
||||
$arrayResultUsr[$valueUidUser] = 'USER_ALREADY_ASSIGNED';
|
||||
$flagAssignUsr = 0;
|
||||
}
|
||||
|
||||
//Assign
|
||||
if ($flagAssignUsr == 1) {
|
||||
$group = new \Groups();
|
||||
|
||||
$group->addUserToGroup($arrayUsrGrp['groupUid'], $valueUidUser);
|
||||
|
||||
$arrayResultUsr[$valueUidUser] = 'USER_SUCCESSFULLY_ASSIGNED';
|
||||
}
|
||||
|
||||
$arrayMsg['users'] = $arrayResultUsr;
|
||||
}
|
||||
}
|
||||
|
||||
$arrayResult[] = $arrayMsg;
|
||||
}
|
||||
|
||||
//Return
|
||||
return $arrayResult;
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unassign User of the Group
|
||||
*
|
||||
|
||||
@@ -31,6 +31,36 @@ class User extends Api
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url POST /batch-users
|
||||
*
|
||||
* @param array $request_data
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostBatchUsers($request_data)
|
||||
{
|
||||
try {
|
||||
$user = new \ProcessMaker\BusinessModel\User();
|
||||
|
||||
$usrUid = $this->getUserId();
|
||||
|
||||
if (!$user->checkPermission($usrUid, 'PM_USERS')) {
|
||||
throw new \Exception(\G::LoadTranslation('ID_USER_NOT_HAVE_PERMISSION', array($usrUid)));
|
||||
}
|
||||
|
||||
$groupUser = new \ProcessMaker\BusinessModel\Group\User();
|
||||
$groupUser->setFormatFieldNameInUppercase(false);
|
||||
|
||||
$arrayData = $groupUser->createBatch($request_data);
|
||||
|
||||
//Return
|
||||
return $arrayData;
|
||||
} catch (\Exception $e) {
|
||||
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url DELETE /:grp_uid/user/:usr_uid
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user