public synchronized void addDelegate()

in torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java [359:396]


	public synchronized void addDelegate(User delegator, User delegatee)
			throws DataBackendException, UnknownEntityException {
		boolean delegatorExists = getUserManager().checkExists(delegator);
		boolean delegateeExists = getUserManager().checkExists(delegatee);

		if (delegatorExists && delegateeExists) {
			super.addDelegate(delegator, delegatee);

			Connection con = null;

			try {
				con = Transaction.begin();

				((TorqueAbstractSecurityEntity) delegator).update(con);
				((TorqueAbstractSecurityEntity) delegatee).update(con);

				Transaction.commit(con);
				con = null;
			} catch (TorqueException e) {
				throw new DataBackendException(
						"addDelegate('" + delegator.getName() + "', '" + delegatee.getName() + "') failed", e);
			} finally {
				if (con != null) {
					Transaction.safeRollback(con);
				}
			}

			return;
		}

		if (!delegatorExists) {
			throw new UnknownEntityException("Unknown user '" + delegator.getName() + "'");
		}

		if (!delegateeExists) {
			throw new UnknownEntityException("Unknown user '" + delegatee.getName() + "'");
		}
	}