From 78d9cd916f0ce1748003146ab7c0aba9691d079e Mon Sep 17 00:00:00 2001 From: Juerd Waalboer Date: Thu, 2 Nov 2023 03:55:23 +0100 Subject: [PATCH] adduser: use tab completion lists to catch some more clashes --- plugins/adduser | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/adduser b/plugins/adduser index 52234de..24b764d 100644 --- a/plugins/adduser +++ b/plugins/adduser @@ -1,5 +1,7 @@ #!perl +use List::Util qw(any); + HELP1 "adduser " => "Create an account"; sub command :Tab(adduser) ($self, $cart, $command, @) { @@ -25,6 +27,13 @@ sub username($self, $cart, $name, @) { return REJECT, "That name already exists." if defined parse_user($name); + for my $plugin (RevBank::Plugins->new) { + my $id = $plugin->id; + + return REJECT, "That name would clash with the '$id' plugin." + if any sub { $_ eq $name }, $plugin->Tab('command'); + } + RevBank::Users::create( $name ); return ACCEPT;