Search in sources :

Example 1 with Privacy

use of org.jivesoftware.smackx.privacy.packet.Privacy in project Smack by igniterealtime.

the class PrivacyProviderTest method parsePrivacyList.

@Test
public void parsePrivacyList() throws Exception {
    // @formatter:off
    final String xmlPrivacyList = "<iq type='result' id='getlist2' to='romeo@example.net/orchard'>" + "<query xmlns='jabber:iq:privacy'>" + "<list name='public'>" + "<item type='jid'" + "value='tybalt@example.com'" + "action='deny'" + "order='1'/>" + "<item action='allow' order='2'/>" + "</list>" + "</query>" + "</iq>";
    // @formatter:on
    IQ iqPrivacyList = (IQ) PacketParserUtils.parseStanza(xmlPrivacyList);
    assertTrue(iqPrivacyList instanceof Privacy);
    Privacy privacyList = (Privacy) iqPrivacyList;
    List<PrivacyItem> pl = privacyList.getPrivacyList("public");
    PrivacyItem first = pl.get(0);
    assertEquals(PrivacyItem.Type.jid, first.getType());
    assertEquals("tybalt@example.com", first.getValue());
    assertEquals(false, first.isAllow());
    assertEquals(1, first.getOrder());
    PrivacyItem second = pl.get(1);
    assertEquals(true, second.isAllow());
    assertEquals(2, second.getOrder());
}
Also used : Privacy(org.jivesoftware.smackx.privacy.packet.Privacy) IQ(org.jivesoftware.smack.packet.IQ) PrivacyItem(org.jivesoftware.smackx.privacy.packet.PrivacyItem) Test(org.junit.Test)

Example 2 with Privacy

use of org.jivesoftware.smackx.privacy.packet.Privacy in project Smack by igniterealtime.

the class PrivacyListManager method setDefaultListName.

/**
     * Set or change the default list to listName.
     * 
     * @param listName the list name to set as the default one.
     * @throws XMPPErrorException 
     * @throws NoResponseException 
     * @throws NotConnectedException 
     * @throws InterruptedException 
     */
public void setDefaultListName(String listName) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
    // The request of the list is an privacy message with an empty list
    Privacy request = new Privacy();
    request.setDefaultName(listName);
    // Send the package to the server
    setRequest(request);
}
Also used : Privacy(org.jivesoftware.smackx.privacy.packet.Privacy)

Example 3 with Privacy

use of org.jivesoftware.smackx.privacy.packet.Privacy in project Smack by igniterealtime.

the class PrivacyListManager method updatePrivacyList.

/**
     * The client has edited an existing list. It updates the server content with the resulting 
     * list of privacy items. The {@link PrivacyItem} list MUST contain all elements in the 
     * list (not the "delta").
     * 
     * @param listName the list that has changed its content.
     * @param privacyItems a List with every privacy item in the list.
     * @throws XMPPErrorException 
     * @throws NoResponseException 
     * @throws NotConnectedException 
     * @throws InterruptedException 
     */
public void updatePrivacyList(String listName, List<PrivacyItem> privacyItems) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
    // Build the privacy package to add or update the new list
    Privacy request = new Privacy();
    request.setPrivacyList(listName, privacyItems);
    // Send the package to the server
    setRequest(request);
}
Also used : Privacy(org.jivesoftware.smackx.privacy.packet.Privacy)

Example 4 with Privacy

use of org.jivesoftware.smackx.privacy.packet.Privacy in project Smack by igniterealtime.

the class PrivacyListManager method getPrivacyListItems.

/**
     * Answer the privacy list items under listName with the allowed and blocked permissions.
     * 
     * @param listName the name of the list to get the allowed and blocked permissions.
     * @return a list of privacy items under the list listName.
     * @throws XMPPErrorException 
     * @throws NoResponseException 
     * @throws NotConnectedException 
     * @throws InterruptedException 
     */
private List<PrivacyItem> getPrivacyListItems(String listName) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
    assert StringUtils.isNotEmpty(listName);
    // The request of the list is an privacy message with an empty list
    Privacy request = new Privacy();
    request.setPrivacyList(listName, new ArrayList<PrivacyItem>());
    // Send the package to the server and get the answer
    Privacy privacyAnswer = getRequest(request);
    return privacyAnswer.getPrivacyList(listName);
}
Also used : Privacy(org.jivesoftware.smackx.privacy.packet.Privacy) PrivacyItem(org.jivesoftware.smackx.privacy.packet.PrivacyItem)

Example 5 with Privacy

use of org.jivesoftware.smackx.privacy.packet.Privacy in project Smack by igniterealtime.

the class PrivacyProvider method parse.

@Override
public Privacy parse(XmlPullParser parser, int initialDepth) throws XmlPullParserException, IOException, SmackException {
    Privacy privacy = new Privacy();
    boolean done = false;
    while (!done) {
        int eventType = parser.next();
        if (eventType == XmlPullParser.START_TAG) {
            // CHECKSTYLE:OFF
            if (parser.getName().equals("active")) {
                String activeName = parser.getAttributeValue("", "name");
                if (activeName == null) {
                    privacy.setDeclineActiveList(true);
                } else {
                    privacy.setActiveName(activeName);
                }
            } else if (parser.getName().equals("default")) {
                String defaultName = parser.getAttributeValue("", "name");
                if (defaultName == null) {
                    privacy.setDeclineDefaultList(true);
                } else {
                    privacy.setDefaultName(defaultName);
                }
            } else // CHECKSTYLE:ON
            if (parser.getName().equals("list")) {
                parseList(parser, privacy);
            }
        } else if (eventType == XmlPullParser.END_TAG) {
            if (parser.getName().equals("query")) {
                done = true;
            }
        }
    }
    return privacy;
}
Also used : Privacy(org.jivesoftware.smackx.privacy.packet.Privacy)

Aggregations

Privacy (org.jivesoftware.smackx.privacy.packet.Privacy)13 PrivacyItem (org.jivesoftware.smackx.privacy.packet.PrivacyItem)4 IQ (org.jivesoftware.smack.packet.IQ)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1