Beispiel #1
0
 /**
  * Adds trust between the two local nodes i.e. FROM trusts TO
  * 
  * @param P2POwnNode $from
  * @param P2POwnNode $to
  */
 protected function runLocal(P2POwnNode $from, P2POwnNode $to)
 {
     // Look up the trust type, using default if necessary
     $typeName = $this->opts->{'trust-type'};
     $typeName = $typeName ? $typeName : MeshingTrustLocalPeer::TYPE_DEFAULT;
     $trustType = MeshingTrustTypeQuery::create()->findOneByName(strtolower($typeName));
     if (!$trustType) {
         throw new Meshing_Console_RunException('The specified trust type is not found');
     }
     // If a trust already exists, require force else an exception is thrown
     $trust = MeshingTrustLocalPeer::retrieveByPK($from->getId(), $to->getId());
     if ($trust) {
         if ($this->opts->force) {
             $trust->delete();
         } else {
             throw new Meshing_Console_RunException('A trust relationship already exists between this node pair (use --force to overwrite)');
         }
     }
     $trust = new MeshingTrustLocal();
     $trust->setFromOwnNode($from);
     $trust->setToOwnNode($to);
     $trust->setMeshingTrustType($trustType);
     $trust->save();
     if (!$this->opts->quiet) {
         echo "trust:add -> set up trust '{$typeName}' by node '{$from->getName()}' to '{$to->getName()}'.\n";
     }
 }