updated Helpfile for module HostServ
[srvx.git] / src / mod-hostserv.c
index da02cbb6c431afd111b882124a78e2ea5fc33d17..3ac51d288ac910ce035f5f8e78ec27b3323d7acd 100644 (file)
@@ -27,6 +27,9 @@
  *     };
  *  };
  *
+ * After you started srvx make the bot active:
+ /msg opserv bind hostserv * hostserv.*
+ /msg opserv bind hostserv help *modcmd.help
  */
 
 #include "chanserv.h"
@@ -58,7 +61,6 @@ static const struct message_entry msgtab[] = {
     { "HSMSG_MANAGED_FAKEHOST", "  $b%s.%s$b   assignments: %d" },
     { "HSMSG_MANAGE_HOWTO", "Use $bview xxx.yyy$b to view more information about a fakehost group." },
     { "HSMSG_UNKNOWN_FAKEHOST", "Fakehost $b%s.%s$b is unknown or you have no access to manage it." },
-    { "HSMSG_UNKNOWN_FAKEHOST_TOPLEVEL", "Fakehost $b%s$b is unknown or you have no access to manage it." },
     { "HSMSG_TOPLEVEL_FAKEHOSTS", "Fakehosts in group $b*.%s$b:" },
     { "HSMSG_TOPLEVEL_FAKEHOST", "  $b%s.%s$b   assignments: %d   managers: %d" },
     { "HSMSG_TOPLEVEL_INVALID", "The name of the group you entered is invalid ($b%s$b)" },
@@ -80,7 +82,7 @@ static const struct message_entry msgtab[] = {
     { "HSMSG_MANAGER_NOT", "$b%s$b is not a manager of %s.%s" },
     { "HSMSG_MANAGER_DELETED", "$b%s$b is no longer a manager of %s.%s" },
     { "HSMSG_FAKEHOST_ASSIGN_SUCCESS", "Group $b%s.%s$b was assigned successfully." },
-    { "HSMSG_FAKEHOST_REVOKE_SUCCESS", "Group $b%s.%s$b was revoked successfully." },
+    { "HSMSG_FAKEHOST_UNASSIGN_SUCCESS", "Group $b%s.%s$b was unassigned successfully." },
     
     { NULL, NULL }
 };
@@ -452,8 +454,6 @@ static void hs_del_assignment(struct hs_assignment *assignment, int remove_from_
             } else
                 prev_assignment = cassignment;
         }
-        if(assignment->user->managements == NULL && assignment->user->assignments == NULL)
-            hs_del_user(assignment->user);
         
         if(assignment->active) {
             struct handle_info *hi;
@@ -462,6 +462,9 @@ static void hs_del_assignment(struct hs_assignment *assignment, int remove_from_
             hi->fakehost = NULL;
             apply_fakehost(hi, NULL);
         }
+        
+        if(assignment->user->managements == NULL && assignment->user->assignments == NULL)
+            hs_del_user(assignment->user);
     }
     free(assignment);
 }
@@ -1082,7 +1085,7 @@ static MODCMD_FUNC(cmd_assign) {
     return 0;
 }
 
-static MODCMD_FUNC(cmd_revoke) {
+static MODCMD_FUNC(cmd_unassign) {
     struct handle_info *hi;
     struct handle_info *hiuser;
     char *fakehost;
@@ -1121,9 +1124,9 @@ static MODCMD_FUNC(cmd_revoke) {
     for(assignment = hs_user->assignments; assignment; assignment = assignment->unext) {
         if(!irccasecmp(slfh_name, assignment->secondlevel->fakehost)) {
             if(!irccasecmp(tlfh_name, assignment->secondlevel->toplevel->fakehost)) {
-                if(check_management_access(hi, assignment->secondlevel->toplevel, assignment->secondlevel)) {
+                if(check_management_access(hiuser, assignment->secondlevel->toplevel, assignment->secondlevel)) {
                     hs_del_assignment(assignment, 1);
-                    reply("HSMSG_FAKEHOST_REVOKE_SUCCESS", slfh_name, tlfh_name);
+                    reply("HSMSG_FAKEHOST_UNASSIGN_SUCCESS", slfh_name, tlfh_name);
                     return 1;
                 }
                 reply("HSMSG_UNKNOWN_FAKEHOST", slfh_name, tlfh_name);
@@ -1347,7 +1350,7 @@ int hostserv_init() {
     modcmd_register(hostserv_module, "delmanager", cmd_delmanager, 3, MODCMD_REQUIRE_AUTHED, NULL);
     modcmd_register(hostserv_module, "set", cmd_set, 2, MODCMD_REQUIRE_AUTHED, NULL);
     modcmd_register(hostserv_module, "assign", cmd_assign, 3, MODCMD_REQUIRE_AUTHED, NULL);
-    modcmd_register(hostserv_module, "revoke", cmd_revoke, 3, MODCMD_REQUIRE_AUTHED, NULL);
+    modcmd_register(hostserv_module, "unassign", cmd_unassign, 3, MODCMD_REQUIRE_AUTHED, NULL);
     modcmd_register(hostserv_module, "addhost", cmd_addhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
     modcmd_register(hostserv_module, "delhost", cmd_delhost, 2, MODCMD_REQUIRE_AUTHED, NULL);
     message_register_table(msgtab);