ArchipelProject/Archipel — pull request #1001 by CyrilPeponnet (2013-12-19 16:33:39+00:00)
Title: Santa's PR :) - XMPP Management improvements, Security fixes and FIX #669 #987 #755

Well, this could be a breaking change PR. It will need some wiki update as well.

This as been tested with ejabberd 2.1.x and with 13.10 (mod_admin_extra not yet working with 13.10).
13.10 introduce YAML configuration file format, I will update the wiki when mod_admin_extra will be fixed.

XMLRPC Security Update
-----------------------------------
The major change is related to xmlrpc. The current configuration is not secured at all as, an anonymous user could use xmlrpc without any restrictions.

The first change has to be made on ejabberd configuration file

The xmlrpc service will now user access_commands to restricts usage only for xmlrpcaccess access list.

```erlang
{4560, ejabberd_xmlrpc, [{access_commands, [{xmlrpcaccess, all, []}]}]},
```

This access is give to any admin.

```erlang
{access, xmlrpcaccess, [{allow, admin}]}.
```

To be able to make an hypervisor admin, you can add it to the configuration file of use a brand new tool:

archipel-ejabberdadmin

```
Usage: archipel-ejabberdadmin [options]

Options:
-h, --help show this help message and exit
-j user@domain, --jid=user@domain
set the JID to use
-p 123456, --password=123456
set the password associated to the JID
-a jid@domain, --authorize=jid@domain
insert a new xmpp admin JID
-u jid@domain, --unauthorize=jid@domain
remove an existing xmpp admin JID
-l, --list list all existing xmpp admin
```

You don't have to restart the agent to apple the changes.

Archipel.conf changes
------------------------------

As the hypervisor is now an ejabberd admin we don't need admin/pwd anymore. So the following lines are no longer used:
```
# XMLRPC API ONLY: The ejabberd XMLRPC server admin account
xmlrpc_user = admin

# XMLRPC API ONLY: The ejabberd XMLRPC server admin password
xmlrpc_password = password
```

Agent Side
---------------

xmppserver_* have been merged into one file.

- User Management is done through XEP-133, Including change password FIX #669
- SRG Management is done through xmlrpc (there is still no XEP for this...)

A tiny fix regarding central agent to avoid been listed as a user.

Client Side
---------------

An improved ToolBarXMPPServer:

- Faster user fetching
- Try to find the best suitable hypervisor for domain regarding XMPP/XMLRPC management
- Ability to change password for user
- Added display group edition for Shared Roster Group