/** * @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; }
/** * 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()); }
public function _set_jid(Jid $jid = null) { $this['jid'] = $jid ? $jid->bare() : null; }