diff --git a/lib/users/User.inc b/lib/users/User.inc index b135e29..9b61b5f 100644 --- a/lib/users/User.inc +++ b/lib/users/User.inc @@ -315,10 +315,20 @@ class User extends KTEntity { $this->update(); if (KTPluginUtil::pluginIsActive('ktdms.wintools')) { require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php'); - BaobabKeyUtil::deallocate($this); + BaobabKeyUtil::deallocateUser($this); } return; } + + function enable() { + $this->setDisabled(false); + $this->update(); + if (KTPluginUtil::pluginIsActive('ktdms.wintools')) { + require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php'); + BaobabKeyUtil::allocateUser($this); + } + return; + } function create() { if (KTPluginUtil::pluginIsActive('ktdms.wintools')) { diff --git a/plugins/ktcore/admin/userManagement.php b/plugins/ktcore/admin/userManagement.php index 1d50427..af415ed 100755 --- a/plugins/ktcore/admin/userManagement.php +++ b/plugins/ktcore/admin/userManagement.php @@ -635,9 +635,11 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { function do_change_enabled() { $this->startTransaction(); $iLicenses = 0; + $bRequireLicenses = false; if (KTPluginUtil::pluginIsActive('ktdms.wintools')) { require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php'); $iLicenses = BaobabKeyUtil::getLicenseCount(); + $bRequireLicenses = true; } // admin and anonymous are automatically ignored here. $iEnabledUsers = User::getNumberEnabledUsers(); @@ -645,7 +647,7 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { foreach(KTUtil::arrayGet($_REQUEST, 'disable_user', array()) as $sUserId => $v) { $oUser = User::get((int)$sUserId); if(PEAR::isError($oUser)) { $this->errorRedirectToMain(_kt('Error getting user object')); } - $oUser->setDisabled(True); + $oUser->disable(); $res = $oUser->update(); if(PEAR::isError($res)) { $this->errorRedirectToMain(_kt('Error updating user')); } $iEnabledUsers--; @@ -653,7 +655,7 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { foreach(KTUtil::arrayGet($_REQUEST, 'enable_user', array()) as $sUserId => $v) { // check that we haven't hit max user limit - if($iLicenses !== 0 && $iEnabledUsers >= $iLicenses) { + if($bRequireLicenses && $iEnabledUsers >= $iLicenses) { // if so, add to error messages, but commit transaction (break this loop) $_SESSION['KTErrorMessage'][] = _kt('You may only have ') . $iLicenses . _kt(' users enabled at one time.'); break; @@ -662,7 +664,7 @@ class KTUserAdminDispatcher extends KTAdminDispatcher { // else enable user $oUser = User::get((int)$sUserId); if(PEAR::isError($oUser)) { $this->errorRedirectToMain(_kt('Error getting user object')); } - $oUser->setDisabled(False); + $oUser->enable(); $res = $oUser->update(); if(PEAR::isError($res)) { $this->errorRedirectToMain(_kt('Error updating user')); } $iEnabledUsers++;