* ircop - require any ircop privileges for kick immunity (umode +o)
*/
immune_level = immune;
+
+ /* show_entity_id
+ * This makes nick/user & group entity IDs visible to everyone, rather
+ * than just opers with user:auspex or group:auspex privileges.
+ */
+ show_entity_id;
};
/******************************************************************************
bool allow_taint; /* allow tainted operation */
unsigned int immune_level; /* what flag is required for kick immunity */
+
+ bool show_entity_id; /* do not require user:auspex to see entity IDs */
};
E struct ConfOption config_options;
add_dupstr_conf_item("LANGUAGE", &conf_gi_table, 0, &config_options.language, "en");
add_conf_item("EXEMPTS", &conf_gi_table, c_gi_exempts);
add_conf_item("IMMUNE_LEVEL", &conf_gi_table, c_gi_immune_level);
+ add_bool_conf_item("SHOW_ENTITY_ID", &conf_gi_table, 0, &config_options.show_entity_id, false);
/* language:: stuff */
add_dupstr_conf_item("NAME", &conf_la_table, 0, &me.language_name, NULL);
command_success_nodata(si, _("Information for \2%s\2:"), parv[0]);
command_success_nodata(si, _("Registered : %s (%s ago)"), strfbuf, time_ago(mg->regtime));
- if (has_priv(si, PRIV_GROUP_AUSPEX))
+ if (config_options.show_entity_id || has_priv(si, PRIV_GROUP_AUSPEX))
command_success_nodata(si, _("Entity ID : %s"), entity(mg)->id);
if (mg->flags & MG_PUBLIC || (si->smu != NULL && groupacs_sourceinfo_has_flag(mg, si, 0) && !groupacs_sourceinfo_has_flag(mg, si, GA_BAN)) || has_priv(si, PRIV_GROUP_AUSPEX))
command_success_nodata(si, _("User reg. : %s (%s ago)"), strfbuf, time_ago(mu->registered));
}
- command_success_nodata(si, _("Entity ID : %s"), entity(mu)->id);
+ if (config_options.show_entity_id || has_user_auspex)
+ command_success_nodata(si, _("Entity ID : %s"), entity(mu)->id);
md = metadata_find(mu, "private:usercloak");
vhost = md ? md->value : NULL;
user_t *u;
myuser_t *mu;
mynick_t *mn;
+ bool show_id = config_options.show_entity_id || has_priv(si, PRIV_USER_AUSPEX);
if (!targuser)
{
}
if (u->myuser == mu)
- command_success_nodata(si, "%s%s%s ACC 3 %s", u->nick, parc >= 2 ? " -> " : "", parc >= 2 ? entity(mu)->name : "", entity(mu)->id);
+ command_success_nodata(si, "%s%s%s ACC 3 %s",
+ u->nick,
+ parc >= 2 ? " -> " : "",
+ parc >= 2 ? entity(mu)->name : "",
+ show_id ? entity(mu)->id : "");
else if ((mn = mynick_find(u->nick)) != NULL && mn->owner == mu &&
myuser_access_verify(u, mu))
- command_success_nodata(si, "%s%s%s ACC 2 %s", u->nick, parc >= 2 ? " -> " : "", parc >= 2 ? entity(mu)->name : "", entity(mu)->id);
+ command_success_nodata(si, "%s%s%s ACC 2 %s",
+ u->nick,
+ parc >= 2 ? " -> " : "",
+ parc >= 2 ? entity(mu)->name : "",
+ show_id ? entity(mu)->id : "");
else
- command_success_nodata(si, "%s%s%s ACC 1 %s", u->nick, parc >= 2 ? " -> " : "", parc >= 2 ? entity(mu)->name : "", entity(mu)->id);
+ command_success_nodata(si, "%s%s%s ACC 1 %s",
+ u->nick,
+ parc >= 2 ? " -> " : "",
+ parc >= 2 ? entity(mu)->name : "",
+ show_id ? entity(mu)->id : "");
}
static void ns_cmd_status(sourceinfo_t *si, int parc, char *parv[])