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; }
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; } }
/** * Method to do selects. * * @param Criteria $criteria The Criteria object used to build the SELECT statement. * @param Connection $con * @return array Array of selected Objects * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelect(Criteria $criteria, $con = null) { return DashletInstancePeer::populateObjects(DashletInstancePeer::doSelectRS($criteria, $con)); }