Commit 2d5607d0ec1af922bfeaec1e1061c41363baa3b0

Authored by Neil Blakey-Milner
1 parent 1d5df73b

Allow for users to be disabled.


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@5935 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/users/User.inc
@@ -69,6 +69,7 @@ class User extends KTEntity { @@ -69,6 +69,7 @@ class User extends KTEntity {
69 var $bAuthenticationDetailsBool1 = null; 69 var $bAuthenticationDetailsBool1 = null;
70 var $bAuthenticationDetailsBool2 = null; 70 var $bAuthenticationDetailsBool2 = null;
71 var $dLastLogin = null; 71 var $dLastLogin = null;
  72 + var $bDisabled = false;
72 73
73 var $_aFieldToSelect = array( 74 var $_aFieldToSelect = array(
74 'iId' => 'id', 75 'iId' => 'id',
@@ -93,6 +94,7 @@ class User extends KTEntity { @@ -93,6 +94,7 @@ class User extends KTEntity {
93 'bAuthenticationDetailsBool1' => 'authentication_details_b1', 94 'bAuthenticationDetailsBool1' => 'authentication_details_b1',
94 'bAuthenticationDetailsBool2' => 'authentication_details_b2', 95 'bAuthenticationDetailsBool2' => 'authentication_details_b2',
95 'dLastLogin' => 'last_login', 96 'dLastLogin' => 'last_login',
  97 + 'bDisabled' => 'disabled',
96 ); 98 );
97 99
98 var $_bUsePearError = true; 100 var $_bUsePearError = true;
@@ -148,6 +150,9 @@ class User extends KTEntity { @@ -148,6 +150,9 @@ class User extends KTEntity {
148 function getLastLogin() { return $this->dLastLogin; } 150 function getLastLogin() { return $this->dLastLogin; }
149 function setLastLogin($mValue) { $this->dLastLogin = $mValue; } 151 function setLastLogin($mValue) { $this->dLastLogin = $mValue; }
150 152
  153 + function getDisabled() { return $this->bDisabled; }
  154 + function setDisabled($mValue) { $this->bDisabled = $mValue; }
  155 +
151 function &get($iId) { 156 function &get($iId) {
152 return KTEntityUtil::get('User', $iId); 157 return KTEntityUtil::get('User', $iId);
153 } 158 }
@@ -294,6 +299,33 @@ class User extends KTEntity { @@ -294,6 +299,33 @@ class User extends KTEntity {
294 'last_login' => array('type' => 'after', 'value' => $dDateTime), 299 'last_login' => array('type' => 'after', 'value' => $dDateTime),
295 ), array('multi' => true)); 300 ), array('multi' => true));
296 } 301 }
  302 +
  303 + function getNumberEnabledUsers() {
  304 + $sQuery = sprintf('SELECT COUNT(id) AS number FROM %s WHERE disabled = ?', KTUtil::getTableName('users'));
  305 + $aParams = array(true);
  306 + return DBUtil::getOneResultKey(array($sQuery, $aParams), 'number');
  307 + }
297 308
298 function isAnonymous() { return $this->iId == -2; } 309 function isAnonymous() { return $this->iId == -2; }
  310 +
  311 + function disable() {
  312 + $this->setDisabled(true);
  313 + $this->update();
  314 + if (KTPluginUtil::pluginIsActive('ktdms.wintools')) {
  315 + require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php');
  316 + BaobabKeyUtil::deallocate($this);
  317 + }
  318 + return;
  319 + }
  320 +
  321 + function create() {
  322 + if (KTPluginUtil::pluginIsActive('ktdms.wintools')) {
  323 + require_once(KT_DIR . '/plugins/wintools/baobabkeyutil.inc.php');
  324 + $res = BaobabKeyUtil::canAddUser();
  325 + if (PEAR::isError($res)) {
  326 + return $res;
  327 + }
  328 + }
  329 + return parent::create();
  330 + }
299 } 331 }
sql/mysql/upgrade/3.1.2/user-disable.sql 0 → 100644
  1 +ALTER TABLE `users` ADD `disabled` TINYINT(1) NOT NULL;
  2 +ALTER TABLE `users` ADD INDEX (`disabled`);