1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Удаление таблицы user_administrator, теперь флаг админа хранится в поле user_admin таблицы user

This commit is contained in:
Mzhelskiy Maxim 2014-12-17 16:46:10 +07:00
parent a2b4091cc7
commit 2d0e1685e1
6 changed files with 55 additions and 9 deletions

View file

@ -149,6 +149,16 @@ class ModuleUser_EntityUser extends Entity
return $this->_getDataOne('user_mail');
}
/**
* Возвращает флаг админа
*
* @return int|null
*/
public function getAdmin()
{
return $this->_getDataOne('user_admin');
}
/**
* Возвращает дату регистрации
*
@ -515,7 +525,7 @@ class ModuleUser_EntityUser extends Entity
*/
public function isAdministrator()
{
return $this->_getDataOne('user_is_administrator');
return $this->getAdmin();
}
/**
@ -631,6 +641,16 @@ class ModuleUser_EntityUser extends Entity
$this->_aData['user_mail'] = $data;
}
/**
* Устанавливает флаг админа
*
* @param string $data
*/
public function setAdmin($data)
{
$this->_aData['user_admin'] = $data;
}
/**
* Устанавливает дату регистрации
*

View file

@ -66,6 +66,7 @@ class ModuleUser_MapperUser extends Mapper
SET
user_password = ? ,
user_mail = ? ,
user_admin = ? ,
user_date_activate = ? ,
user_date_comment_last = ? ,
user_rating = ? ,
@ -92,6 +93,7 @@ class ModuleUser_MapperUser extends Mapper
";
$res = $this->oDb->query($sql, $oUser->getPassword(),
$oUser->getMail(),
$oUser->getAdmin(),
$oUser->getDateActivate(),
$oUser->getDateCommentLast(),
$oUser->getRating(),
@ -218,11 +220,9 @@ class ModuleUser_MapperUser extends Mapper
}
$sql = "SELECT
u.* ,
IF(ua.user_id IS NULL,0,1) as user_is_administrator
u.*
FROM
" . Config::Get('db.table.user') . " as u
LEFT JOIN " . Config::Get('db.table.user_administrator') . " AS ua ON u.user_id=ua.user_id
WHERE
u.user_id IN(?a)
ORDER BY FIELD(u.user_id,?a) ";

View file

@ -283,7 +283,6 @@ $config['db']['table']['prefix'] = 'prefix_';
$config['db']['table']['user'] = '___db.table.prefix___user';
$config['db']['table']['blog'] = '___db.table.prefix___blog';
$config['db']['table']['blog_category'] = '___db.table.prefix___blog_category';
$config['db']['table']['topic'] = '___db.table.prefix___topic';
$config['db']['table']['topic_tag'] = '___db.table.prefix___topic_tag';
$config['db']['table']['topic_type'] = '___db.table.prefix___topic_type';
@ -298,7 +297,6 @@ $config['db']['table']['talk_user'] = '___db.table.prefix___talk_user';
$config['db']['table']['talk_blacklist'] = '___db.table.prefix___talk_blacklist';
$config['db']['table']['friend'] = '___db.table.prefix___friend';
$config['db']['table']['topic_content'] = '___db.table.prefix___topic_content';
$config['db']['table']['user_administrator'] = '___db.table.prefix___user_administrator';
$config['db']['table']['comment_online'] = '___db.table.prefix___comment_online';
$config['db']['table']['invite'] = '___db.table.prefix___invite';
$config['db']['table']['page'] = '___db.table.prefix___page';

View file

@ -25,7 +25,7 @@ class InstallStepInstallAdmin extends InstallStep
return $this->addError(InstallCore::getLang('steps.installAdmin.errors.passwd'));
}
/**
* Полчаем данные коннекта к БД из конфига
* Получаем данные коннекта к БД из конфига
*/
InstallConfig::$sFileConfig = dirname(INSTALL_DIR) . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.local.php';
/**
@ -50,6 +50,7 @@ class InstallStepInstallAdmin extends InstallStep
UPDATE `{$sPrefix}user`
SET
`user_mail` = '{$sMail}',
`user_admin` = '1',
`user_password` = '" . md5($sPasswd) . "'
WHERE `user_id` = 1";

View file

@ -520,6 +520,17 @@ class InstallStepUpdateVersion extends InstallStep
* Конвертируем аватарки и фото пользователей
* Дополнительно добавляем роль для прав
*/
/**
* Получаем текущий список админов
*/
$aUserAdmin=array();
if ($this->dbCheckTable("prefix_user_administrator")) {
if ($aAdmins = $this->dbSelect("SELECT * FROM prefix_user_administrator ")) {
foreach ($aAdmins as $aRow) {
$aUserAdmin[]=$aRow['user_id'];
}
}
}
$iPage = 1;
$iLimitCount = 50;
$iLimitStart = 0;
@ -632,12 +643,27 @@ class InstallStepUpdateVersion extends InstallStep
$sTzName = $this->convertTzOffsetToName($aUser['user_settings_timezone']);
}
/**
* Админы
*/
$isAdmin=0;
if (in_array($aUser['user_id'],$aUserAdmin) or $aUser['user_admin']) {
$isAdmin=1;
}
/**
* Сохраняем в БД
*/
$sAvatar = mysqli_escape_string($this->rDbLink, $sAvatar);
$sPhoto = mysqli_escape_string($this->rDbLink, $sPhoto);
$this->dbQuery("UPDATE prefix_user SET user_settings_timezone = " . ($sTzName ? "'{$sTzName}'" : 'null') . " , user_profile_avatar = '{$sAvatar}', user_profile_foto = '{$sPhoto}' WHERE user_id ='{$aUser['user_id']}'");
$this->dbQuery("UPDATE prefix_user SET user_admin = '{$isAdmin}' , user_settings_timezone = " . ($sTzName ? "'{$sTzName}'" : 'null') . " , user_profile_avatar = '{$sAvatar}', user_profile_foto = '{$sPhoto}' WHERE user_id ='{$aUser['user_id']}'");
/**
* Удаляем таблицы
*/
if ($this->dbCheckTable("prefix_user_administrator")) {
$this->dbQuery('DROP TABLE prefix_user_administrator');
}
}
}

View file

@ -743,4 +743,5 @@ INSERT INTO `prefix_topic_type` (`id`, `name`, `name_many`, `code`, `allow_remov
-- 17.12.2014
ALTER TABLE `prefix_user` CHANGE `user_settings_timezone` `user_settings_timezone` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ALTER TABLE `prefix_user` CHANGE `user_settings_timezone` `user_settings_timezone` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;
ALTER TABLE `prefix_user` ADD `user_admin` TINYINT(1) NOT NULL DEFAULT '0' AFTER `user_mail`, ADD INDEX (`user_admin`) ;