aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfripost-adduser8
-rwxr-xr-xfripost-passwd3
-rw-r--r--lib/Fripost/Schema/Type/User.pm4
3 files changed, 10 insertions, 5 deletions
diff --git a/fripost-adduser b/fripost-adduser
index 633926e..168b80c 100755
--- a/fripost-adduser
+++ b/fripost-adduser
@@ -193,6 +193,10 @@ my ($domain, $login);
{
+ # Error if the domain is unknown.
+ die "Error: Unknown domain `" .$domain. "'.\n"
+ unless $ldap->domain->search({ domain => $domain })->count;
+
# Ensure that the username doesn't already exist.
die "Error: User `" .$user->{username}. "' already exists.\n"
if $ldap->user->search({ username => $user->{username} })->count;
@@ -206,10 +210,6 @@ my ($domain, $login);
say STDERR ".)";
exit 1;
}
-
- # Warn if the domain is unknown.
- warn "WARN: Unknown domain `" .$domain. "'.\n"
- unless $ldap->domain->search({ domain => $domain })->count;
}
diff --git a/fripost-passwd b/fripost-passwd
index e03deb5..8fad371 100755
--- a/fripost-passwd
+++ b/fripost-passwd
@@ -153,6 +153,9 @@ $password //= hash( undef, undef, prompt_password() );
# Ensure that the user exists.
+my $domain = (split /\@/, $username, 2)[1];
+die "Error: Unknown domain `" .$domain. "'.\n"
+ unless $ldap->domain->search({ domain => $domain })->count;
die "Error: Unknown user `" .$username. "'.\n"
unless $ldap->user->search({ username => $username })->count;
diff --git a/lib/Fripost/Schema/Type/User.pm b/lib/Fripost/Schema/Type/User.pm
index f5b6ce2..c3075a8 100644
--- a/lib/Fripost/Schema/Type/User.pm
+++ b/lib/Fripost/Schema/Type/User.pm
@@ -20,7 +20,9 @@ sub search {
my $self = shift;
my $user = shift;
- my ($username, $domain) = split /\@/, $user->{username}, 2;
+ my ($username, $domain);
+ ($username, $domain) = split /\@/, $user->{username}, 2
+ if defined $user->{username};
my $base = $self->{_options}->{base_dn};
$base = join ',', ( 'dc='.$domain, $base )