/** * Implementation for 'GET' method for Rest API * * @param mixed $dasInsUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function get($dasInsUid = null) { $result = array(); try { $noArguments = true; $argumentList = func_get_args(); foreach ($argumentList as $arg) { if (!is_null($arg)) { $noArguments = false; } } if ($noArguments) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_OWNER_TYPE); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_OWNER_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_CREATE_DATE); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UPDATE_DATE); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_STATUS); $dataset = AppEventPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $result[] = $dataset->getRow(); } } else { $record = DashletInstancePeer::retrieveByPK($dasInsUid); if ($record) { $result = $record->toArray(BasePeer::TYPE_FIELDNAME); } else { $paramValues = ""; foreach ($argumentList as $arg) { $paramValues .= strlen($paramValues) ? ', ' : ''; if (!is_null($arg)) { $paramValues .= "{$arg}"; } else { $paramValues .= "NULL"; } } throw new RestException(417, "table DashletInstance ({$paramValues})"); } } } catch (RestException $e) { throw new RestException($e->getCode(), $e->getMessage()); } catch (Exception $e) { throw new RestException(412, $e->getMessage()); } return $result; }
public function remove($dasInsUid) { $connection = Propel::getConnection(DashletInstancePeer::DATABASE_NAME); try { $dashletInstance = DashletInstancePeer::retrieveByPK($dasInsUid); if (!is_null($dashletInstance)) { $connection->begin(); $result = $dashletInstance->delete(); $connection->commit(); return $result; } else { throw new Exception('Error trying to delete: The row "' . $dasInsUid . '" not exists.'); } } catch (Exception $error) { $connection->rollback(); throw $error; } }
public function remove($dasInsUid) { $connection = Propel::getConnection(DashletInstancePeer::DATABASE_NAME); try { $dashletInstance = DashletInstancePeer::retrieveByPK($dasInsUid); if (!is_null($dashletInstance)) { $connection->begin(); $dashletData = $this->load($dasInsUid); $result = $dashletInstance->delete(); $connection->commit(); G::auditLog("DeleteDashletInstance", "Dashlet Instance Name: " . $dashletData['DAS_INS_TITLE'] . " Dashlet Instance ID: (" . $dasInsUid . ") "); return $result; } else { throw new Exception('Error trying to delete: The row "' . $dasInsUid . '" does not exist.'); } } catch (Exception $error) { $connection->rollback(); throw $error; } }
public function getDashletsInstancesForUser($userUid) { try { $dashletsInstances = array(); // Include required classes require_once 'classes/model/Department.php'; require_once 'classes/model/Users.php'; // Check for "public" dashlets $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $criteria->addSelectColumn(DashletPeer::DAS_CLASS); $criteria->addSelectColumn(DashletPeer::DAS_TITLE); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY'); $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { if (!isset($dashletsInstances[$row['DAS_INS_UID']])) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_XTEMPLATE'] = $this->getXTemplate($row['DAS_CLASS']); $row["DAS_TITLE"] = isset($arrayField["DAS_INS_TITLE"]) && !empty($arrayField["DAS_INS_TITLE"]) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . (isset($arrayField["DAS_INS_SUBTITLE"]) && !empty($arrayField["DAS_INS_SUBTITLE"]) ? str_replace("@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"]) : null); $dashletsInstances[$row['DAS_INS_UID']] = $row; } $dataset->next(); } // Check for the direct assignments $usersInstance = new Users(); $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $criteria->addSelectColumn(DashletPeer::DAS_CLASS); $criteria->addSelectColumn(DashletPeer::DAS_TITLE); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'USER'); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $userUid); $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { if (!isset($dashletsInstances[$row['DAS_INS_UID']])) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_XTEMPLATE'] = $this->getXTemplate($row['DAS_CLASS']); $row["DAS_TITLE"] = isset($arrayField["DAS_INS_TITLE"]) && !empty($arrayField["DAS_INS_TITLE"]) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . (isset($arrayField["DAS_INS_SUBTITLE"]) && !empty($arrayField["DAS_INS_SUBTITLE"]) ? str_replace("@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"]) : null); $dashletsInstances[$row['DAS_INS_UID']] = $row; } $dataset->next(); } // Check for department assigments $departmentInstance = new Department(); $departments = $departmentInstance->getDepartmentsForUser($userUid); foreach ($departments as $depUid => $department) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $criteria->addSelectColumn(DashletPeer::DAS_CLASS); $criteria->addSelectColumn(DashletPeer::DAS_TITLE); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT'); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $depUid); $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { if (!isset($dashletsInstances[$row['DAS_INS_UID']])) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_XTEMPLATE'] = $this->getXTemplate($row['DAS_CLASS']); $row["DAS_TITLE"] = isset($arrayField["DAS_INS_TITLE"]) && !empty($arrayField["DAS_INS_TITLE"]) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . (isset($arrayField["DAS_INS_SUBTITLE"]) && !empty($arrayField["DAS_INS_SUBTITLE"]) ? str_replace("@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"]) : null); $dashletsInstances[$row['DAS_INS_UID']] = $row; } $dataset->next(); } } // Check for group assignments G::LoadClass('groups'); $groupsInstance = new Groups(); $groups = $groupsInstance->getGroupsForUser($userUid); foreach ($groups as $grpUid => $group) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $criteria->addSelectColumn(DashletPeer::DAS_CLASS); $criteria->addSelectColumn(DashletPeer::DAS_TITLE); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'GROUP'); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid); $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { if (!isset($dashletsInstances[$row['DAS_INS_UID']])) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_XTEMPLATE'] = $this->getXTemplate($row['DAS_CLASS']); $row["DAS_TITLE"] = isset($arrayField["DAS_INS_TITLE"]) && !empty($arrayField["DAS_INS_TITLE"]) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; $row["DAS_TITLE"] = $row["DAS_TITLE"] . (isset($arrayField["DAS_INS_SUBTITLE"]) && !empty($arrayField["DAS_INS_SUBTITLE"]) ? str_replace("@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"]) : null); $dashletsInstances[$row['DAS_INS_UID']] = $row; } $dataset->next(); } } // Check for role assigments // ToDo: Next release // Check for permission assigments // ToDo: Next release return array_values($dashletsInstances); } catch (Exception $error) { throw $error; } }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = DashletInstancePeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setDasInsUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setDasUid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setDasInsOwnerType($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setDasInsOwnerUid($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setDasInsAdditionalProperties($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setDasInsCreateDate($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setDasInsUpdateDate($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setDasInsStatus($arr[$keys[7]]); } }
$oGroups->removeUserOfAllGroups($UID); $RBAC->changeUserStatus($UID, 'CLOSED'); $_GET['USR_USERNAME'] = ''; $RBAC->updateUser(array('USR_UID' => $UID, 'USR_USERNAME' => $_GET['USR_USERNAME']), ''); require_once 'classes/model/Users.php'; $oUser = new Users(); $aFields = $oUser->load($UID); $aFields['USR_STATUS'] = 'CLOSED'; $aFields['USR_USERNAME'] = ''; $oUser->update($aFields); //Delete Dashboard require_once 'classes/model/DashletInstance.php'; $criteria = new Criteria('workflow'); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_UID, $UID); $criteria->add(DashletInstancePeer::DAS_INS_OWNER_TYPE, 'USER'); DashletInstancePeer::doDelete($criteria); break; case 'changeUserStatus': $response = new stdclass(); if (isset($_REQUEST['USR_UID']) && isset($_REQUEST['NEW_USR_STATUS'])) { $RBAC->changeUserStatus($_REQUEST['USR_UID'], $_REQUEST['NEW_USR_STATUS'] == 'ACTIVE' ? 1 : 0); require_once 'classes/model/Users.php'; $userInstance = new Users(); $userData = $userInstance->load($_REQUEST['USR_UID']); $userData['USR_STATUS'] = $_REQUEST['NEW_USR_STATUS']; $userInstance->update($userData); $response->status = 'OK'; } else { $response->status = 'ERROR'; $response->message = 'USR_UID and NEW_USR_STATUS parameters are required.'; }
/** * Delete User * * @param string $usrUid Unique id of User * * return void */ public function delete($usrUid) { try { //Verify data $this->throwExceptionIfNotExistsUser($usrUid, $this->arrayFieldNameForException["usrUid"]); \G::LoadClass('case'); $oProcessMap = new \Cases(); $USR_UID = $usrUid; $total = 0; $history = 0; $c = $oProcessMap->getCriteriaUsersCases('TO_DO', $USR_UID); $total += \ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('DRAFT', $USR_UID); $total += \ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('COMPLETED', $USR_UID); $history += \ApplicationPeer::doCount($c); $c = $oProcessMap->getCriteriaUsersCases('CANCELLED', $USR_UID); $history += \ApplicationPeer::doCount($c); if ($total > 0) { throw new \Exception(\G::LoadTranslation("ID_USER_CAN_NOT_BE_DELETED", array($USR_UID))); } else { $UID = $usrUid; \G::LoadClass('tasks'); $oTasks = new \Tasks(); $oTasks->ofToAssignUserOfAllTasks($UID); \G::LoadClass('groups'); $oGroups = new \Groups(); $oGroups->removeUserOfAllGroups($UID); $this->changeUserStatus($UID, 'CLOSED'); $_GET['USR_USERNAME'] = ''; $this->updateUser(array('USR_UID' => $UID, 'USR_USERNAME' => $_GET['USR_USERNAME']), ''); require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php"); $oUser = new \Users(); $aFields = $oUser->load($UID); $aFields['USR_STATUS'] = 'CLOSED'; $aFields['USR_USERNAME'] = ''; $oUser->update($aFields); //Delete Dashboard require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "DashletInstance.php"); $criteria = new \Criteria( 'workflow' ); $criteria->add( \DashletInstancePeer::DAS_INS_OWNER_UID, $UID ); $criteria->add( \DashletInstancePeer::DAS_INS_OWNER_TYPE , 'USER'); \DashletInstancePeer::doDelete( $criteria ); } } catch (\Exception $e) { throw $e; } }
public function verifyTitleDashlet($data) { $response = new stdclass(); $this->setResponseType("json"); $response->message = "OK"; $criteria = new Criteria("workflow"); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_UID); $criteria->addSelectColumn(DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES); $rsCriteria = DashletInstancePeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); if (isset($arrayField["DAS_INS_TITLE"]) && $arrayField["DAS_INS_TITLE"] != "" && $data->DAS_INS_UID != $row["DAS_INS_UID"]) { if ($data->DAS_INS_TITLE == $arrayField["DAS_INS_TITLE"]) { $response->message = "ERROR"; } } } return $response; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param Connection $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(DashletInstancePeer::DAS_INS_UID, $pks, Criteria::IN); $objs = DashletInstancePeer::doSelect($criteria, $con); } return $objs; }