/**
  * 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;
 }
Example #2
0
 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;
     }
 }
Example #4
0
 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]]);
     }
 }
Example #6
0
     $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.';
     }
Example #7
0
    /**

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

        }

    }
Example #8
0
 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;
 }