diff options
author | Christian Pointner <equinox@spreadspace.org> | 2015-09-30 15:07:41 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2015-09-30 15:07:41 (GMT) |
commit | 5897b1bc3b059a29f57bde6c08344deceb41bd23 (patch) | |
tree | f2ca2ba16403ac0d65286fc1b5e3d9783440b32b /lib/RHRD/rddb.pm | |
parent | efb5d6557591ef21c27aa46aae220d862c36feeb (diff) |
major cleanup for all utils
Diffstat (limited to 'lib/RHRD/rddb.pm')
-rwxr-xr-x | lib/RHRD/rddb.pm | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm index 3957459..894c03e 100755 --- a/lib/RHRD/rddb.pm +++ b/lib/RHRD/rddb.pm @@ -575,13 +575,26 @@ sub add_group_member { my ($dbh, $groupname, $username) = @_; - my ($cnt, $result, $errostring) = is_group_member($dbh, $groupname, $username); + my $sql = qq{select count(*) from USERS where LOGIN_NAME = ?;}; + my $sth = $dbh->prepare($sql) + or return (undef, 'ERROR', "Database Error: " . $dbh->errstr); + + $sth->execute($username) + or return (undef, 'ERROR', "Database Error: " . $sth->errstr); + + my ($cnt) = $sth->fetchrow_array(); + $sth->finish(); + if($cnt < 1) { + return (undef, 'ERROR', "user '" . $username . "' does not exist"); + } + + ($cnt, my $result, my $errostring) = is_group_member($dbh, $groupname, $username); if($cnt > 0) { return (undef, 'ERROR', "already a member"); } - my $sql = qq{insert into USER_PERMS (GROUP_NAME, USER_NAME) values (?, ?);}; - my $sth = $dbh->prepare($sql) + $sql = qq{insert into USER_PERMS (GROUP_NAME, USER_NAME) values (?, ?);}; + $sth = $dbh->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $dbh->errstr); $cnt = $sth->execute($groupname, $username) |