GrouperLog.debug(LOG, s, msg);
  protected void canOPTIN(GrouperSession s, Group g, Subject subj)    throws  InsufficientPrivilegeException  {    boolean   can   = false;    Privilege priv  = AccessPrivilege.OPTIN;    String    msg   = "canOPTIN: ";    if (PrivilegeResolver.getInstance().hasPriv(s, g, subj, priv)) {      msg += "OPTIN";      can = true;    }    else if (      PrivilegeResolver.getInstance().hasPriv(s, g, subj, AccessPrivilege.ADMIN)    )    {      msg += "ADMIN";      can = true;    }    else if (      PrivilegeResolver.getInstance().hasPriv(s, g, subj, AccessPrivilege.UPDATE)    )    {      GrouperLog.debug(LOG, s, msg + "UPDATE");      can = true;    }    if (can == false) {      GrouperLog.debug(LOG, s, msg + "no");      throw new InsufficientPrivilegeException(        s.getSubject().getId() + " does not have " + priv + " on '"         + g.getName() + "'"      );    }    GrouperLog.debug(LOG, s, msg);  } // protected void canOPTIN(s, g, subj)