aboutsummaryrefslogtreecommitdiff
path: root/pseudoclients/haxserv.c
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-06-17 22:32:05 -0400
committerTest_User <hax@andrewyu.org>2024-06-17 22:32:05 -0400
commitf67a7bd24b2e655c21ffdc6160d663d8d5ba5be6 (patch)
tree0441b0eadccdcf4f15e82dfd489696cc0ce5c518 /pseudoclients/haxserv.c
parent27589848053910baa5394f8fdf233a7f9c07c3f8 (diff)
downloadhaxircd-f67a7bd24b2e655c21ffdc6160d663d8d5ba5be6.tar.gz
haxircd-f67a7bd24b2e655c21ffdc6160d663d8d5ba5be6.zip
allow/deny notices
Diffstat (limited to 'pseudoclients/haxserv.c')
-rw-r--r--pseudoclients/haxserv.c38
1 files changed, 35 insertions, 3 deletions
diff --git a/pseudoclients/haxserv.c b/pseudoclients/haxserv.c
index 32d40df..797857a 100644
--- a/pseudoclients/haxserv.c
+++ b/pseudoclients/haxserv.c
@@ -608,11 +608,28 @@ int haxserv_pseudoclient_allow_command(struct string from, struct string sender,
break;
}
}
- if (!found)
+ if (!found) {
+ notice(SID, HAXSERV_UID, respond_to, STRING("This user doesn't exist, so is thereby already denied access."));
return 0;
+ }
}
- oper_user(SID, user, HAXSERV_REQUIRED_OPER_TYPE, HAXSERV_UID);
+ if (oper_user(SID, user, HAXSERV_REQUIRED_OPER_TYPE, HAXSERV_UID) != 0) {
+ notice(SID, HAXSERV_UID, respond_to, STRING("Failed to oper target."));
+ return 0;
+ }
+
+ struct string msg_parts[] = {
+ STRING("User `"),
+ user->nick,
+ STRING("' is now considered an oper."),
+ };
+ struct string msg;
+ if (str_combine(&msg, sizeof(msg_parts)/sizeof(*msg_parts), msg_parts) == 0) {
+ notice(SID, HAXSERV_UID, respond_to, msg);
+ } else {
+ notice(SID, HAXSERV_UID, respond_to, STRING("User is now considered an oper."));
+ }
return 0;
}
@@ -643,7 +660,22 @@ int haxserv_pseudoclient_deny_command(struct string from, struct string sender,
return 0;
}
- oper_user(SID, user, STRING(""), HAXSERV_UID);
+ if (oper_user(SID, user, STRING(""), HAXSERV_UID) != 0) {
+ notice(SID, HAXSERV_UID, respond_to, STRING("Failed to deoper target."));
+ return 0;
+ }
+
+ struct string msg_parts[] = {
+ STRING("User `"),
+ user->nick,
+ STRING("' is no longer an oper."),
+ };
+ struct string msg;
+ if (str_combine(&msg, sizeof(msg_parts)/sizeof(*msg_parts), msg_parts) == 0) {
+ notice(SID, HAXSERV_UID, respond_to, msg);
+ } else {
+ notice(SID, HAXSERV_UID, respond_to, STRING("User is no longer an oper."));
+ }
return 0;
}