]> jfr.im git - irc/atheme/atheme.git/commitdiff
{groupserv,nickserv}/info: make visibility of entity IDs an option
authorMantas Mikulėnas <redacted>
Sun, 28 Sep 2014 19:09:01 +0000 (22:09 +0300)
committerWilliam Pitcock <redacted>
Tue, 14 Oct 2014 13:17:59 +0000 (08:17 -0500)
dist/atheme.conf.example
include/global.h
libathemecore/conf.c
modules/groupserv/info.c
modules/nickserv/info.c
modules/nickserv/status.c

index 47653fa34d9de1b151f246901304da7ed3709828..9d80f7f933586bcd7f4f1ad1ccceb590db1bf00f 100644 (file)
@@ -2117,6 +2117,12 @@ general {
         *    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;
 };
 
 /******************************************************************************
index 4cce3da7d104259ca03575431beadfc1ecfc8644..26b86cc6cac5502dc5c0151ae789f434f7985d77 100644 (file)
@@ -111,6 +111,8 @@ struct ConfOption
   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;
index 7955cd50f34deda97baab6b673eb32319ffcb654..afcd9b85e33b2ca826c1ad76f31e7ad5277d36ef 100644 (file)
@@ -250,6 +250,7 @@ void init_newconf(void)
        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);
index 5b30cd3008e1dcfe672964e3b53e1fe79786a034..9a9951fc6caa35330a094b11ebb1186010bc0035 100644 (file)
@@ -46,7 +46,7 @@ static void gs_cmd_info(sourceinfo_t *si, int parc, char *parv[])
        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))
index b951459fafd4241b1f7dfb7b1b81b46676e501a9..ea363e9bcc0cc99bc0409187654d6a0c1be7b42f 100644 (file)
@@ -140,7 +140,8 @@ static void ns_cmd_info(sourceinfo_t *si, int parc, char *parv[])
                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;
index 6b0f08809a48124621da11c853135b30979d729f..3333bcfd0228711f12e0d9625882dcc23da3657f 100644 (file)
@@ -40,6 +40,7 @@ static void ns_cmd_acc(sourceinfo_t *si, int parc, char *parv[])
        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)
        {
@@ -69,12 +70,24 @@ static void ns_cmd_acc(sourceinfo_t *si, int parc, char *parv[])
        }
 
        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[])