in hibernate/src/java/org/apache/fulcrum/security/hibernate/turbine/HibernateModelManagerImpl.java [215:269]
public void revoke(User user, Group group, Role role) throws DataBackendException, UnknownEntityException
{
boolean roleExists = false;
boolean userExists = false;
boolean groupExists = false;
try
{
roleExists = getRoleManager().checkExists(role);
userExists = getUserManager().checkExists(user);
groupExists = getGroupManager().checkExists(group);
if (roleExists && groupExists && userExists)
{
boolean ugrFound = false;
for (TurbineUserGroupRole ugr : ((TurbineUser) user).getUserGroupRoleSet())
{
if (ugr.getUser().equals(user) && ugr.getGroup().equals(group) && ugr.getRole().equals(role))
{
ugrFound = true;
((TurbineUser) user).removeUserGroupRole(ugr);
((TurbineGroup) group).removeUserGroupRole(ugr);
((TurbineRole) role).removeUserGroupRole(ugr);
getPersistenceHelper().updateEntity(user);
getPersistenceHelper().updateEntity(group);
getPersistenceHelper().updateEntity(role);
break;
}
}
if (!ugrFound)
{
throw new UnknownEntityException("Could not find User/Group/Role");
}
return;
}
}
catch (DataBackendException e)
{
throw new DataBackendException("revoke(User,Group,Role) failed", e);
}
if (!roleExists)
{
throw new UnknownEntityException("Unknown role '" + role.getName() + "'");
}
if (!groupExists)
{
throw new UnknownEntityException("Unknown group '" + group.getName() + "'");
}
if (!userExists)
{
throw new UnknownEntityException("Unknown user '" + user.getName() + "'");
}
}