/**
   * Removes the groups from the role.
   *
   * @param roleId the primary key of the role
   * @param groupIds the primary keys of the groups
   * @throws PortalException if a portal exception occurred
   */
  @Override
  public void unsetRoleGroups(long roleId, long[] groupIds) throws PortalException {

    RolePermissionUtil.check(getPermissionChecker(), roleId, ActionKeys.ASSIGN_MEMBERS);

    groupLocalService.unsetRoleGroups(roleId, groupIds);
  }
  @Override
  protected void populateExtraHelperUtilities(Map<String, Object> velocityContext) {

    // Date tool

    velocityContext.put("dateTool", new DateTool());

    // Escape tool

    velocityContext.put("escapeTool", new EscapeTool());

    // Iterator tool

    velocityContext.put("iteratorTool", new IteratorTool());

    // List tool

    velocityContext.put("listTool", new ListTool());

    // Math tool

    velocityContext.put("mathTool", new MathTool());

    // Number tool

    velocityContext.put("numberTool", new NumberTool());

    // Portlet preferences

    velocityContext.put("velocityPortletPreferences", new TemplatePortletPreferences());

    // Sort tool

    velocityContext.put("sortTool", new SortTool());

    // Permissions

    try {
      velocityContext.put("rolePermission", RolePermissionUtil.getRolePermission());
    } catch (SecurityException se) {
      _log.error(se, se);
    }
  }