Merge remote-tracking branch 'upstream/3.1' into HOR-1087

This commit is contained in:
Dheeyi William
2016-06-07 12:27:57 -04:00
4 changed files with 171 additions and 30 deletions

View File

@@ -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)

View File

@@ -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' )) {

View File

@@ -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
*

View File

@@ -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
*