* @param mq The message queue.
* @param security The security element.
*/
protected void addRolesToQueue(MessageQueue mq, Element security)
{
Set receivableUserSet = new HashHolder();
Set sendableUserSet = new HashHolder();
for (Iterator roleItr = m_metadata.getChannelIterator(); roleItr.hasNext(); )
{
Channel roleChannel = (Channel)roleItr.next();
if (roleChannel.isEnabled() && roleChannel instanceof MessageQueue)
{
MessageQueue roleMQ = (MessageQueue)roleChannel;
if (roleMQ.getUser() != null && roleMQ.getAlias().equals(mq.getAlias()))
{
if (roleMQ.isReceivable())
{
receivableUserSet.add(roleMQ.getUser());
}
if (roleMQ.isSendable())
{
sendableUserSet.add(roleMQ.getUser());
}
}
}
}
// logical OR of the permissions for a user
for (Iterator roleItr = receivableUserSet.iterator(); roleItr.hasNext(); )
{
String sRole = (String)roleItr.next();
boolean bSendable = sendableUserSet.remove(sRole);
Element role = XMLUtil.setChildElement(security, null, "role", "name", sRole, null, true);
role.setAttribute("read", "true");
role.setAttribute("write", String.valueOf(bSendable));
role.setAttribute("create", String.valueOf(bSendable));
}
for (Iterator roleItr = sendableUserSet.iterator(); roleItr.hasNext(); )
{
String sRole = (String)roleItr.next();
Element role = XMLUtil.setChildElement(security, null, "role", "name", sRole, null, true);
role.setAttribute("read", "false");