Example #1
0
 private function approveRelationship($r)
 {
     if ($this->registry->getObject('authenticate')->isLoggedIn()) {
         $rel = new Relation($this->registry, $r, 0, 0, 0, 0);
         if ($rel->getUserB() == $this->registry->getObject('authenticate')->getUser()->getUserID()) {
             $rel->approveRelationship();
             $rel->save();
             $this->registry->errorPage('Relationship approved', 'Thank you for approving the relationship');
         } else {
             $this->registry->errorPage('Invalid request', 'You are not authorized to approve that request');
         }
     } else {
         $this->registry->errorPage('Please login', 'Please login to approve this connection');
     }
 }
Example #2
0
 public static function saveRelation($parents, $document, $updateCache = true)
 {
     if ($parents) {
         try {
             $con = Propel::getConnection();
             $con->begin();
             $docId = $document->getId();
             if (!is_array($parents)) {
                 $parents = array($parents);
             }
             foreach ($parents as $parent) {
                 $saveNew = true;
                 if ($parent) {
                     $parentId = $parent->getId();
                     $oldParentId = Document::getParentOf($docId, null, false);
                     if ($oldParentId) {
                         $relation = RelationPeer::retrieveByPk($oldParentId, $docId);
                         if ($oldParentId != $parentId) {
                             $relation->delete();
                         } else {
                             $saveNew = false;
                         }
                     }
                     if ($saveNew) {
                         $relation = new Relation();
                         $relation->setId1($parentId);
                         $relation->setId2($docId);
                         $relation->setDocumentModel1(get_class($parent));
                         $relation->setDocumentModel2(get_class($document));
                         $relation->setSortOrder($relation->getNextSortOrder($parent, $document));
                     }
                     $relation->save();
                 }
             }
             $con->commit();
             if (sfConfig::get('sf_cache_relations') && $updateCache && $parentId) {
                 self::updateRelationCache($parentId);
             }
             return true;
         } catch (Exception $e) {
             $con->rollback();
             throw $e;
         }
     }
 }
 private function create($id1, $id2, $type)
 {
     $rel = new Relation();
     $rel->id1 = $id1;
     $rel->id2 = $id2;
     $rel->type = $type;
     $rel->save();
     $rel->reset();
 }
 public function actionAddRelation()
 {
     if (isset($_POST['dataset_id']) && isset($_POST['doi']) && isset($_POST['relationship'])) {
         $relation = Relation::model()->findByAttributes(array('dataset_id' => $_POST['dataset_id'], 'related_doi' => $_POST['doi'], 'relationship_id' => $_POST['relationship']));
         if ($relation) {
             Util::returnJSON(array("success" => false, "message" => Yii::t("app", "This relation has been added already.")));
         }
         $transaction = Yii::app()->db->beginTransaction();
         try {
             $relation = new Relation();
             $relation->dataset_id = $_POST['dataset_id'];
             $relation->related_doi = $_POST['doi'];
             $relation->relationship_id = $_POST['relationship'];
             $relation2 = new Relation();
             $relation2->dataset_id = Dataset::model()->findByAttributes(array('identifier' => $_POST['doi']))->id;
             $relation2->related_doi = Dataset::model()->findByPk($_POST['dataset_id'])->identifier;
             $relation2->relationship_id = $_POST['relationship'];
             if ($relation->save() && $relation2->save()) {
                 $transaction->commit();
                 Util::returnJSON(array("success" => true));
             } else {
                 $transaction->rollback();
                 Yii::log(print_r($relation->getErrors(), true), 'debug');
             }
         } catch (Exception $e) {
             $message = $e->getMessage();
             Yii::log(print_r($message, true), 'error');
             $transaction->rollback();
             Util::returnJSON(array("success" => false, "message" => Yii::t("app", "Save Error.")));
         }
     }
 }
Example #5
0
 public function postAjaxFollow()
 {
     if (!empty(Input::get('user_id')) && !empty(Input::get('current_user'))) {
         if (true) {
             $relation = new Relation();
             $relation->user1_id = Input::get('current_user');
             $relation->user2_id = Input::get('user_id');
             $relation->type = 1;
             $relation->save();
             echo 'true';
         }
     } else {
         echo 'false';
     }
 }