summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-07-30 18:09:38 (GMT)
committerChristian Pointner <equinox@spreadspace.org>2015-07-30 18:09:38 (GMT)
commit8d0da02c44468259ed688e93d6a9ab2d9cea1400 (patch)
treebd8797cbadf3710217f2cd26bf3f4e67b0b549c7
parent9fa3420ae118b880690bcbb62c049f96c72e0dc8 (diff)
no more special characters for passwords as rmlsend and others don't like it
added login/logout script for workstations
-rw-r--r--Makefile.PL2
-rwxr-xr-xutils/get-rd-token1
-rwxr-xr-xutils/rd-user2
-rwxr-xr-xutils/rhrd-ws-login55
-rwxr-xr-xutils/update-rd-tokens2
5 files changed, 58 insertions, 4 deletions
diff --git a/Makefile.PL b/Makefile.PL
index d9d78ee..3796727 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
use 5.004;
-my @utils = qw(get-rd-token get-rd-week update-rd-tokens rd-user);
+my @utils = qw(get-rd-token rhrd-ws-login get-rd-week update-rd-tokens rd-user);
WriteMakefile(
NAME => 'RHRD',
diff --git a/utils/get-rd-token b/utils/get-rd-token
index ff014c0..6965cab 100755
--- a/utils/get-rd-token
+++ b/utils/get-rd-token
@@ -52,7 +52,6 @@ if(defined $dbh) {
print STDERR "$errorstring\n";
exit 1;
}
- $token = '' unless($token);
RHRD::rddb::closedb($dbh);
} else {
print STDERR "$errorstring\n";
diff --git a/utils/rd-user b/utils/rd-user
index 520a653..019f004 100755
--- a/utils/rd-user
+++ b/utils/rd-user
@@ -47,7 +47,7 @@ if(defined $dbh) {
RHRD::rddb::closedb($dbh);
exit $result;
} elsif($cmd eq "add") {
- my $token = mkpasswd(-length => 16, -minnum => 3, -minupper => 3, -minspecial => 2);
+ my $token = mkpasswd(-length => 16, -minnum => 3, -minupper => 3, -minspecial => 0);
(my $cnt, undef, $errorstring) = RHRD::rddb::add_user($dbh, $username, $token);
unless(defined $cnt) {
print "$errorstring\n";
diff --git a/utils/rhrd-ws-login b/utils/rhrd-ws-login
new file mode 100755
index 0000000..44e4eea
--- /dev/null
+++ b/utils/rhrd-ws-login
@@ -0,0 +1,55 @@
+#!/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;
+
+my $num_args = $#ARGV + 1;
+if($num_args != 1 || ($ARGV[0] ne "login" && $ARGV[0] ne "logout")) {
+ print STDERR "Usage: rhrd-ws-login (login|logout)\n";
+ exit 1;
+}
+
+my $username = getpwuid($>);
+
+my ($dbh, undef, $errorstring) = RHRD::rddb::opendb();
+if(defined $dbh) {
+ my $macro = "NN!";
+ if($ARGV[0] eq "logout") {
+ $macro = "LO!";
+ } elsif($ARGV[0] eq "login") {
+ (my $token, undef, $errorstring) = RHRD::rddb::get_token($dbh, $username);
+ unless($token) {
+ print STDERR "$errorstring\n";
+ exit 1;
+ }
+ $token =~ s/([ !'"\\])/\\$1/g;
+ $macro = "LO $username $token!"
+ }
+ RHRD::rddb::closedb($dbh);
+ system('/usr/bin/rmlsend', $macro) == 0 or die "system(/usr/bin/rmlsend, $macro) failed: $?";
+} else {
+ print STDERR "$errorstring\n";
+ exit 1;
+}
+
+exit 0
diff --git a/utils/update-rd-tokens b/utils/update-rd-tokens
index bcd5bb1..ba22110 100755
--- a/utils/update-rd-tokens
+++ b/utils/update-rd-tokens
@@ -48,7 +48,7 @@ if(defined $dbh) {
foreach my $user (@users) {
next if(exists($EXCLUDED_USERS{$user}));
- my $token = mkpasswd(-length => 16, -minnum => 3, -minupper => 3, -minspecial => 2);
+ my $token = mkpasswd(-length => 16, -minnum => 3, -minupper => 3, -minspecial => 0);
RHRD::rddb::set_token($dbh, $user, $token);
print "$user -> $token\n";
}