From 37ba59896d4c9ac5c914d1901d86ed7e7d844871 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen.hemminger@vyatta.com>
Date: Tue, 2 Jun 2009 14:22:15 -0700
Subject: Change API for login modules

The login modules aren't really objects (if Perl really had objects), so
just use dynamic invoke of update routine.
---
 lib/Vyatta/Login/RadiusServer.pm | 16 +---------------
 lib/Vyatta/Login/User.pm         | 33 +++++++--------------------------
 2 files changed, 8 insertions(+), 41 deletions(-)

(limited to 'lib')

diff --git a/lib/Vyatta/Login/RadiusServer.pm b/lib/Vyatta/Login/RadiusServer.pm
index 97ae4eb6..34da8a31 100644
--- a/lib/Vyatta/Login/RadiusServer.pm
+++ b/lib/Vyatta/Login/RadiusServer.pm
@@ -83,25 +83,11 @@ sub add_radius_servers {
     return 1;
 }
 
-sub new {
-    my $that = shift;
-    my $class = ref($that) || $that;
+sub update {
     my $rconfig = new Vyatta::Config;
     $rconfig->setLevel("system login radius-server");
     my %servers     = $rconfig->listNodeStatus();
-    my $self = \%servers;
-
-    bless $self, $class;
-
-    return $self;
-}
-
-sub update {
-    my $self       = shift;
-    my %servers    = %$self;
     my $server_str  = '';
-    my $rconfig = new Vyatta::Config;
-    $rconfig->setLevel('system login radius-server');
 
     if (%servers) {
 	remove_radius_servers();
diff --git a/lib/Vyatta/Login/User.pm b/lib/Vyatta/Login/User.pm
index f053abf1..c4870986 100755
--- a/lib/Vyatta/Login/User.pm
+++ b/lib/Vyatta/Login/User.pm
@@ -20,29 +20,6 @@ use warnings;
 use lib "/opt/vyatta/share/perl5";
 use Vyatta::Config;
 
-sub new {
-    my ( $that ) = @_;
-    my $class = ref($that) || $that;
-    my $config = new Vyatta::Config;
-    $config->setLevel("system login user");
-    my %users     = $config->listNodeStatus();
-    my @user_keys = sort keys %users;
-
-    if (   ( scalar(@user_keys) <= 0 )
-        || !( grep /^root$/, @user_keys )
-        || ( $users{'root'} eq 'deleted' ) )
-    {
-
-        # root is deleted
-        die "User \"root\" cannot be deleted\n";
-    }
-
-    my $self = \%users;
-    bless $self, $class;
-
-    return $self;
-}
-
 # Exit codes form useradd.8 man page
 my %reasons = (
     0  => 'success',
@@ -81,10 +58,14 @@ sub get_groups {
 }
 
 sub update {
-    my $self       = shift;
-    my %users      = %$self;
     my $membership = get_groups();
-    my $uconfig    = new Vyatta::Config;
+    my $uconfig = new Vyatta::Config;
+    $uconfig->setLevel("system login user");
+    my %users     = $uconfig->listNodeStatus();
+
+    die "All users deleted!\n" unless %users;
+    die "User root cannot be deleted\n" 
+	if (! defined $users{'root'} || $users{'root'} eq 'deleted');
 
     foreach my $user ( keys %users ) {
         if ( $users{$user} eq 'deleted' ) {
-- 
cgit v1.2.3