Ejemplo n.º 1
0
 /**
  * @param Jid $jid
  *
  * @return RosterItem|null
  */
 public function byJid(Jid $jid)
 {
     foreach ($this->contacts as $contact) {
         if ($contact->jid->bare() == $jid->bare()) {
             return $contact;
         }
     }
     return null;
 }
Ejemplo n.º 2
0
 /**
  * Changes user affiliation.
  *
  * @param Jid    $room        Jid of room.
  * @param Jid    $user        Users Jid.
  * @param string $affiliation New affiliation for user.
  *                            none, outcast, member, admin, owner
  * @param string $reason      Reason of changing user affiliation.
  *
  * @internal Plugins should use Room::affiliation() instead of that.
  *
  * @throws \InvalidArgumentException
  */
 public function affiliate(Jid $room, Jid $user, $affiliation, $reason = '')
 {
     if (!in_array($affiliation, array('none', 'outcast', 'member', 'admin', 'owner'))) {
         throw new \InvalidArgumentException('affiliation');
     }
     $xml = new xmlBranch("iq");
     $xml->addAttribute("type", "set")->addAttribute("to", $room->__toString())->addAttribute("id", uniqid('affiliate_'));
     $xml->addChild(new xmlBranch("query"));
     $xml->query[0]->addAttribute("xmlns", "http://jabber.org/protocol/muc#admin");
     $xml->query[0]->addChild(new xmlBranch("item"));
     $xml->query[0]->item[0]->addAttribute("jid", $user->bare());
     $xml->query[0]->item[0]->addAttribute("affiliation", $affiliation);
     if (!empty($reason)) {
         $xml->query[0]->item[0]->addChild(new xmlBranch("reason"))->setContent($reason);
     }
     $this->write($xml->asXml());
 }
Ejemplo n.º 3
0
 public function _set_jid(Jid $jid = null)
 {
     $this['jid'] = $jid ? $jid->bare() : null;
 }