From 8a16eca80b1a4a5c091a4fd8ec0515b37982e402 Mon Sep 17 00:00:00 2001 From: Robert Anderson <randerson@lbsd.net> Date: Tue, 11 May 2010 07:47:07 +0000 Subject: [PATCH] Added isBoolean function Check if user is disabled --- smradius/modules/userdb/mod_userdb_sql.pm | 9 ++++++- smradius/util.pm | 33 +++++++++++++++++++++++ smradiusd.conf | 2 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/smradius/modules/userdb/mod_userdb_sql.pm b/smradius/modules/userdb/mod_userdb_sql.pm index 8d3b764c..e7ea3690 100644 --- a/smradius/modules/userdb/mod_userdb_sql.pm +++ b/smradius/modules/userdb/mod_userdb_sql.pm @@ -68,7 +68,7 @@ sub init # Default configs... $config->{'userdb_find_query'} = ' SELECT - ID + ID, Disabled FROM @TP@users WHERE @@ -172,6 +172,13 @@ sub find # Grab record data my $row = $sth->fetchrow_hashref(); + # Dont use disabled user + my $res = isBoolean($row->{'disabled'}); + if ($res) { + $server->log(LOG_DEBUG,"[MOD_USERDB_SQL] User '".$user->{'Username'}."' is disabled"); + return MOD_RES_SKIP; + } + DBFreeRes($sth); return (MOD_RES_ACK,$row); diff --git a/smradius/util.pm b/smradius/util.pm index ad9e528d..189a3344 100644 --- a/smradius/util.pm +++ b/smradius/util.pm @@ -30,6 +30,7 @@ our (@ISA,@EXPORT); @EXPORT = qw( niceUndef templateReplace + isBoolean ); @@ -80,6 +81,38 @@ sub templateReplace } +## @fn isBoolean($var) +# Check if a variable is boolean +# +# @param var Variable to check +# +# @return 1, 0 or undef +sub isBoolean +{ + my $var = shift; + + + # Check if we're defined + if (!defined($var)) { + return undef; + } + + # Nuke whitespaces + $var =~ s/\s//g; + + # Allow true, on, set, enabled, 1, false, off, unset, disabled, 0 + if ($var =~ /^(?:true|on|set|enabled|1)$/i) { + return 1; + } + if ($var =~ /^(?:false|off|unset|disabled|0)$/i) { + return 0; + } + + # Invalid or unknown + return undef; +} + + 1; # vim: ts=4 diff --git a/smradiusd.conf b/smradiusd.conf index 648005fb..a9d482d5 100644 --- a/smradiusd.conf +++ b/smradiusd.conf @@ -387,7 +387,7 @@ EOT userdb_find_query=<<EOT SELECT - ID + ID, Disabled FROM @TP@users WHERE -- GitLab