diff options
Diffstat (limited to 'utils/rd-user')
-rwxr-xr-x | utils/rd-user | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/utils/rd-user b/utils/rd-user deleted file mode 100755 index 8689cb4..0000000 --- a/utils/rd-user +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/perl -w -# -# rhrdlibs -# -# Copyright (C) 2015 Christian Pointner <equinox@helsinki.at> -# -# This file is part of rhrdlibs. -# -# rhrdlibs is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# any later version. -# -# rhrdlibs is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with rhrdlibs. If not, see <http://www.gnu.org/licenses/>. -# - -use strict; -use RHRD::rddb; -use String::MkPasswd qw(mkpasswd); - -# this is ridiculous but makes it a little harder to create/remove users... -if ($> != 0 ) { - print STDERR "this must be run as root!\n"; - exit 1; -} - -sub print_usage -{ - print STDERR "Usage: rd-user list\n" . - " rd-user (check|remove) <username>\n" . - " rd-user add <username> [ <fullname> ]\n"; -} - -sub list -{ - my ($ctx) = @_; - - my @users = RHRD::rddb::list_users($ctx); - if(!defined $users[0] && defined $users[1]) { - print STDERR "$users[1]: $users[2]"; - return 1; - } - for my $user (@users) { - print $user . "\n"; - } - return 0; -} - -sub check -{ - my ($ctx, $username) = @_; - - my ($result, $status, $errorstring) = RHRD::rddb::check_user($ctx, $username); - print STDERR "$result, $status: $errorstring\n"; - return $result; -} - -sub add -{ - my ($ctx, $username, $fullname) = @_; - - my $token = mkpasswd(-length => 16, -minnum => 3, -minupper => 3, -minspecial => 0); - my ($cnt, undef, $errorstring) = RHRD::rddb::add_user($ctx, $username, $token, $fullname); - unless(defined $cnt) { - print STDERR "$errorstring\n"; - return 1; - } - print int($cnt) . " rows affected\n"; - return 0; -} - -sub remove -{ - my ($ctx, $username) = @_; - - my @results = RHRD::rddb::remove_user($ctx, $username); - if(!defined $results[0] && defined $results[2]) { - print STDERR "$results[2]\n"; - return 1; - } - for my $href (@results) { - print int($href->{cnt}) . " " . $href->{name} . " deleted\n"; - } - return 0; -} - - -my $num_args = $#ARGV + 1; -if($num_args < 1) { - print_usage(); - exit(1); -} -my $cmd = $ARGV[0]; -my $username = $ARGV[1]; -my $ret = 0; - -my ($ctx, undef, $errorstring) = RHRD::rddb::init(); -if(defined $ctx) { - if($cmd eq "list") { - if($num_args != 1) { - print_usage(); - $ret = 1; - } else { - $ret = list($ctx); - } - } - elsif($cmd eq "check") { - if($num_args != 2) { - print_usage(); - $ret = 1; - } else { - $ret = check($ctx, $username); - } - } elsif($cmd eq "add") { - if($num_args < 2 || $num_args > 3) { - print_usage(); - $ret = 1; - } else { - $ret = add($ctx, $username, $ARGV[2]); - } - } elsif($cmd eq "remove") { - if($num_args != 2) { - print_usage(); - $ret = 1; - } else { - $ret = remove($ctx, $username); - } - } else { - print_usage(); - $ret = 1; - } - - RHRD::rddb::destroy($ctx); -} else { - print STDERR "$errorstring\n"; - $ret = 1; -} - -exit $ret; |