public synchronized void grant()

in torque/src/java/org/apache/fulcrum/security/torque/dynamic/TorqueDynamicModelManagerImpl.java [110:148]


	public synchronized void grant(Role role, Permission permission)
			throws DataBackendException, UnknownEntityException {
		boolean roleExists = getRoleManager().checkExists(role);
		boolean permissionExists = getPermissionManager().checkExists(permission);

		if (roleExists && permissionExists) {
			((DynamicRole) role).addPermission(permission);
			((DynamicPermission) permission).addRole(role);

			Connection con = null;

			try {
				con = Transaction.begin();

				((TorqueAbstractSecurityEntity) role).update(con);
				((TorqueAbstractSecurityEntity) permission).update(con);

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

			return;
		}

		if (!roleExists) {
			throw new UnknownEntityException("Unknown role '" + role.getName() + "'");
		}

		if (!permissionExists) {
			throw new UnknownEntityException("Unknown permission '" + permission.getName() + "'");
		}
	}