protected List<AssetTag> filterTags(List<AssetTag> tags) throws PortalException {

    PermissionChecker permissionChecker = getPermissionChecker();

    tags = ListUtil.copy(tags);

    Iterator<AssetTag> itr = tags.iterator();

    while (itr.hasNext()) {
      AssetTag tag = itr.next();

      if (!AssetTagPermission.contains(permissionChecker, tag, ActionKeys.VIEW)) {

        itr.remove();
      }
    }

    return tags;
  }