Smack + openfire - Можно ли проверить, что текущий пользователь администратор или нет? / Как проверить данные текущего пользователя?

Можно ли проверить, является ли текущий пользователь администратором или нет / Как проверить данные текущего пользователя? (Java smack + openfire в Android)?
Когда я пытаюсь создать пользователя на веб-странице администратора openfire. Есть вариант:
Администратор? (Предоставляет доступ администратора к Openfire)
Можно ли узнать, есть ли у текущего пользователя доступ администратора к Openfire? (Я имею в виду, как проверить, что текущий пользователь является администратором OpenFire)


person mobile app Beginner    schedule 02.05.2012    source источник
comment
Вы имеете в виду, что у вас есть привилегии root?   -  person xxpor    schedule 02.05.2012
comment
Я хочу знать, есть ли у текущего администратора доступ / привилегии к Openfire. Спасибо   -  person mobile app Beginner    schedule 02.05.2012


Ответы (3)


Попробуй это,

 account = Connection.getAccountManager();
 Collection<String> attrs = account.getAccountAttributes();
 //inspect the values in attrs, should contain the type of account

Ок .. на странице создания пользователя.

Администратор? -> означает, что если вы хотите предоставить права администратора пользователю, которого вы создаете. Пользователь-администратор будет иметь все права на создание / удаление пользователя, сеанса, групп и т. Д. Возможно, вы не захотите предоставлять привилегии администратора всем пользователям.

Если вы хотите узнать, есть ли у текущего пользователя или любого другого существующего пользователя права администратора, тогда перейдите к

Пользователь / Группы -> Пользователи -> Сводка пользователя (здесь вы получите всех пользователей в системе)

Текущий вошедший в систему пользователь будет отмечен звездочкой рядом с ним. (я думаю) Нажмите на пользователя, тогда он даст краткую информацию о пользователе. Свойство Является администратором ?: будет иметь значение да или нет соответственно.

person frewper    schedule 02.05.2012
comment
Извините, мой вопрос был непонятен. Я отредактировал свой вопрос. Кстати, кое-что полезное предоставили, спасибо - person mobile app Beginner; 02.05.2012
comment
Спасибо frewper, а можно ли это проверить в Android-клиенте? На самом деле, я хочу знать, есть ли у текущего вошедшего в систему пользователя (клиент Android) права администратора или нет. 'Коллекция ‹String› attrs = account.getAccountAttributes ();' не указывает, является ли пользователь администратором или нет. - person mobile app Beginner; 02.05.2012

Возможно, методы в AdminManager дадут вам некоторые идеи. Например,

public boolean isUserAdmin(org.xmpp.packet.JID jid,
                           boolean allowAdminIfEmpty)

а также

public List<org.xmpp.packet.JID> getAdminAccounts()

Вы можете обратиться к javadoc о классе.

person Kevin Chen    schedule 27.06.2018
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из отзыва - person desertnaut; 27.06.2018
comment
Это моя невнимательность, ответ обновлен. - person Kevin Chen; 27.06.2018

Вот пример использования AdminManager для получения всех администраторов одного сервера:

/**
 * Returns a collection with the JIDs of the server's admins. The collection may include
 * JIDs of local users and users of remote servers.
 *
 * @return a collection with the JIDs of the server's admins.
 */
public Collection<JID> getAdmins() {
    return AdminManager.getInstance().getAdminAccounts();
}

Более подробную информацию можно найти в XMPPServer.java.

person Z. Mei    schedule 29.06.2018