function removeItemFromPermissions(PermissionItem $item, array $permissionNames)
{
    foreach ($permissionNames as $permissionName) {
        $partnerPermission = array_map('trim', explode('>', $permissionName));
        $partnerId = PartnerPeer::GLOBAL_PARTNER;
        if (count($partnerPermission) === 2) {
            $partnerId = trim($partnerPermission[0]);
        }
        $permissionName = trim(end($partnerPermission));
        $c = new Criteria();
        $c->addAnd(PermissionPeer::NAME, $permissionName);
        $c->addAnd(PermissionPeer::TYPE, array(PermissionType::NORMAL, PermissionType::PARTNER_GROUP), Criteria::IN);
        $c->addAnd(PermissionPeer::PARTNER_ID, array(PartnerPeer::GLOBAL_PARTNER, $item->getPartnerId(), $partnerId), Criteria::IN);
        $permission = PermissionPeer::doSelectOne($c);
        if (!$permission) {
            continue;
        }
        $c = new Criteria();
        $c->addAnd(PermissionToPermissionItemPeer::PERMISSION_ITEM_ID, $item->getId());
        $c->addAnd(PermissionToPermissionItemPeer::PERMISSION_ID, $permission->getId());
        $permissionToPermissionItem = PermissionToPermissionItemPeer::doSelectOne($c);
        if (!$permissionToPermissionItem) {
            continue;
        }
        $permissionToPermissionItem->delete();
    }
}