本文整理汇总了PHP中ModuleUser_EntityUser::isAdministrator方法的典型用法代码示例。如果您正苦于以下问题:PHP ModuleUser_EntityUser::isAdministrator方法的具体用法?PHP ModuleUser_EntityUser::isAdministrator怎么用?PHP ModuleUser_EntityUser::isAdministrator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModuleUser_EntityUser
的用法示例。
在下文中一共展示了ModuleUser_EntityUser::isAdministrator方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: EventAjaxChangeOrderFields
public function EventAjaxChangeOrderFields()
{
// * Устанавливаем формат ответа
E::ModuleViewer()->SetResponseAjax('json');
if (!E::ModuleUser()->IsAuthorization()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
if (!$this->oUserCurrent->isAdministrator()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
if (!F::GetRequest('order')) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
if (is_array(F::GetRequest('order'))) {
foreach (F::GetRequest('order') as $oOrder) {
if (is_numeric($oOrder['order']) && is_numeric($oOrder['id']) && ($oField = E::ModuleTopic()->GetContentFieldById($oOrder['id']))) {
$oField->setFieldSort($oOrder['order']);
E::ModuleTopic()->UpdateContentField($oField);
}
}
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('action.admin.save_sort_success'));
return;
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
}
示例2: GetIsAdmin
/**
* Проверяет является ли текущий пользователь администратором
*
* @param bool $bReturnUser Возвращать или нет объект пользователя
*
* @return bool|ModuleUser_EntityUser
*/
public function GetIsAdmin($bReturnUser = false)
{
if ($this->oUserCurrent and $this->oUserCurrent->isAdministrator()) {
return $bReturnUser ? $this->oUserCurrent : true;
}
return false;
}
示例3: Authorization
/**
* Авторизовывает юзера
*
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param bool $bRemember Запоминать пользователя или нет
* @param string $sKey Ключ авторизации для куков
* @return bool
*/
public function Authorization(ModuleUser_EntityUser $oUser, $bRemember = true, $sKey = null)
{
if (!Config::Get('plugin.blacklist.check_authorization') || $oUser && $oUser->isAdministrator() || $oUser && !$this->PluginBlacklist_ModuleBlacklist_blackMail($oUser->getMail(), $oUser->getLogin())) {
return parent::Authorization($oUser, $bRemember, $sKey);
}
$this->Message_AddErrorSingle($this->Lang_Get(Config::Get('plugin.blacklist.check_ip_exact') ? 'plugin.blacklist.user_in_exact_blacklist' : 'plugin.blacklist.user_in_blacklist'));
return false;
}
示例4: CheckRuleAction
/**
* @param string $sAction
* @param ModuleUser_EntityUser $oUser
* @param array $aParams
*
* @return bool|string
*/
public function CheckRuleAction($sAction, $oUser, $aParams = array())
{
if ($oUser->isAdministrator()) {
return true;
}
// * Проверка на наличие блокировок
list($iBlockType, $sBlockTarget) = $this->GetTypeAndTargetByAction($sAction);
$xResult = $this->CheckRuleBlock($iBlockType, $sBlockTarget, $oUser, $aParams);
if (true !== $xResult) {
return $xResult ? $xResult : false;
}
// * Проверка на запрещающие правила
$bSkip = false;
$aType = (array) Config::Get('plugin.magicrules.rule_disallow.' . $sAction . '.type');
if ($iBlockType == self::BLOCK_TYPE_VOTE && isset($aParams['vote_value']) && count($aType) && !in_array($this->aVoteMirrow[$aParams['vote_value']], $aType)) {
$bSkip = true;
}
$aGroups = (array) Config::Get('plugin.magicrules.rule_disallow.' . $sAction . '.groups');
if (!$bSkip && count($aGroups)) {
$sMsg = $this->_text(Config::Get('plugin.magicrules.rule_disallow.' . $sAction . '.msg'));
foreach ($aGroups as $aRule) {
$bCheck = true;
foreach ($aRule as $sOption => $xValue) {
if (!$this->CheckRuleDisallowActionParam($sOption, $xValue, $oUser, $aParams)) {
$bCheck = false;
break;
}
}
if ($bCheck) {
return $sMsg ? $sMsg : false;
}
}
}
// * Проверка на разрешающие правила
$aGroups = (array) Config::Get('plugin.magicrules.rule_allow.' . $sAction . '.groups');
if (!count($aGroups)) {
return true;
}
$sMsg = $this->_text(Config::Get('plugin.magicrules.rule_allow.' . $sAction . '.msg'));
foreach ($aGroups as $aRule) {
$bCheck = true;
foreach ($aRule as $sOption => $xValue) {
if (!$this->CheckRuleActionParam($sOption, $xValue, $oUser, $aParams)) {
$bCheck = false;
break;
}
}
if ($bCheck) {
return true;
}
}
return $sMsg ? $sMsg : false;
}
示例5: Init
/**
* Инициализация
*
* @return null
*/
public function Init()
{
/**
* Проверяем авторизован ли юзер
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddErrorSingle($this->Lang_Get('not_access'));
return Router::Action('error');
}
/**
* Получаем текущего юзера
*/
$this->oUserCurrent = $this->User_GetUserCurrent();
/**
* Проверяем является ли юзер администратором
*/
if (!$this->oUserCurrent->isAdministrator()) {
$this->Message_AddErrorSingle($this->Lang_Get('not_access'));
return Router::Action('error');
}
$this->SetDefaultEvent('report');
}
示例6: AjaxRemoveBlogInvite
/**
* Обработка ajax запроса на удаление вступить в закрытый блог
*/
protected function AjaxRemoveBlogInvite()
{
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('json');
$sUserId = getRequestStr('idUser', null, 'post');
$sBlogId = getRequestStr('idBlog', null, 'post');
/**
* Если пользователь не авторизирован, возвращаем ошибку
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'), $this->Lang_Get('error'));
return;
}
$this->oUserCurrent = $this->User_GetUserCurrent();
/**
* Проверяем существование блога
*/
if (!($oBlog = $this->Blog_GetBlogById($sBlogId))) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'), $this->Lang_Get('error'));
return;
}
/**
* Пользователь существует и активен?
*/
if (!($oUser = $this->User_GetUserById($sUserId)) or $oUser->getActivate() != 1) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'), $this->Lang_Get('error'));
return;
}
/**
* Проверяем, имеет ли право текущий пользователь добавлять invite в blog
*/
$oBlogUser = $this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(), $this->oUserCurrent->getId());
$bIsAdministratorBlog = $oBlogUser ? $oBlogUser->getIsAdministrator() : false;
if ($oBlog->getOwnerId() != $this->oUserCurrent->getId() and !$this->oUserCurrent->isAdministrator() and !$bIsAdministratorBlog) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'), $this->Lang_Get('error'));
return;
}
$oBlogUser = $this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
if ($oBlogUser->getUserRole() == ModuleBlog::BLOG_USER_ROLE_INVITE) {
/**
* Удаляем связь/приглашение
*/
$this->Blog_DeleteRelationBlogUser($oBlogUser);
$this->Message_AddNoticeSingle($this->Lang_Get('blog_user_invite_remove_ok', array('login' => $oUser->getLogin())), $this->Lang_Get('attention'));
} else {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'), $this->Lang_Get('error'));
}
}
示例7: EventInvite
/**
* Показ и обработка формы приглаешний
*
*/
protected function EventInvite()
{
/**
* Только при активном режиме инвайтов
*/
if (!Config::Get('general.reg.invite')) {
return parent::EventNotFound();
}
$this->sMenuItemSelect = 'invite';
$this->sMenuSubItemSelect = '';
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_invite'));
/**
* Если отправили форму
*/
if (isPost('submit_invite')) {
$this->Security_ValidateSendForm();
$bError = false;
/**
* Есть права на отправку инфайтов?
*/
if (!$this->ACL_CanSendInvite($this->oUserCurrent) and !$this->oUserCurrent->isAdministrator()) {
$this->Message_AddError($this->Lang_Get('settings_invite_available_no'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Емайл корректен?
*/
if (!func_check(getRequestStr('invite_mail'), 'mail')) {
$this->Message_AddError($this->Lang_Get('settings_invite_mail_error'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Запускаем выполнение хуков
*/
$this->Hook_Run('settings_invate_send_before', array('oUser' => $this->oUserCurrent));
/**
* Если нет ошибок, то отправляем инвайт
*/
if (!$bError) {
$oInvite = $this->User_GenerateInvite($this->oUserCurrent);
$this->Notify_SendInvite($this->oUserCurrent, getRequestStr('invite_mail'), $oInvite);
$this->Message_AddNoticeSingle($this->Lang_Get('settings_invite_submit_ok'));
$this->Hook_Run('settings_invate_send_after', array('oUser' => $this->oUserCurrent));
}
}
$this->Viewer_Assign('iCountInviteAvailable', $this->User_GetCountInviteAvailable($this->oUserCurrent));
$this->Viewer_Assign('iCountInviteUsed', $this->User_GetCountInviteUsed($this->oUserCurrent->getId()));
// $this->Viewer_Assign('oAceUserProfile', $this->PluginAceadminpanel_Admin_GetUserByLogin($this->oUserProfile->getLogin()));
}
示例8: CanPostTestimonialTime
/**
* Проверяет может ли пользователь создавать запись по времени
*/
public function CanPostTestimonialTime(ModuleUser_EntityUser $oUser)
{
// Для администраторов ограничение по времени не действует
if ($oUser->isAdministrator() or Config::Get('plugin.testimonials.acl.create.limit_time') == 0 or $oUser->getRating() >= Config::Get('plugin.testimonials.acl.create.limit_time_rating')) {
return true;
}
/**
* Проверяем, если топик опубликованный меньше чем acl.create.topic.limit_time секунд назад
*/
$aTestimonials = $this->PluginTestimonials_Testimonials_GetTestimonialsItemsByFilter(array('#page' => array(1, 20), '#order' => array('id' => 'desc'), 'user_id' => $oUser->getId(), 'date_add >' => date("Y-m-d H:i:s", time() - Config::Get('plugin.testimonials.acl.create.limit_time'))));
if (isset($aTestimonials['count']) and $aTestimonials['count'] > 0) {
return false;
}
return true;
}
示例9: EventInvite
/**
* Показ и обработка формы приглаешний
*
*/
protected function EventInvite()
{
/**
* Только при активном режиме инвайтов
*/
if (!Config::Get('general.reg.invite')) {
return parent::EventNotFound();
}
$this->sMenuItemSelect = 'invite';
$this->sMenuSubItemSelect = '';
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('settings_menu_invite'));
/**
* Если отправили форму
*/
if (isPost('submit_invite')) {
E::ModuleSecurity()->ValidateSendForm();
$bError = false;
/**
* Есть права на отправку инфайтов?
*/
if (!E::ModuleACL()->CanSendInvite($this->oUserCurrent) && !$this->oUserCurrent->isAdministrator()) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('settings_invite_available_no'), E::ModuleLang()->Get('error'));
$bError = true;
}
/**
* Емайл корректен?
*/
if (!F::CheckVal(F::GetRequestStr('invite_mail'), 'mail')) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('settings_invite_mail_error'), E::ModuleLang()->Get('error'));
$bError = true;
}
/**
* Запускаем выполнение хуков
*/
E::ModuleHook()->Run('settings_invate_send_before', array('oUser' => $this->oUserCurrent));
/**
* Если нет ошибок, то отправляем инвайт
*/
if (!$bError) {
$oInvite = E::ModuleUser()->GenerateInvite($this->oUserCurrent);
E::ModuleNotify()->SendInvite($this->oUserCurrent, F::GetRequestStr('invite_mail'), $oInvite);
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('settings_invite_submit_ok'));
E::ModuleHook()->Run('settings_invate_send_after', array('oUser' => $this->oUserCurrent));
}
}
E::ModuleViewer()->Assign('iCountInviteAvailable', E::ModuleUser()->GetCountInviteAvailable($this->oUserCurrent));
E::ModuleViewer()->Assign('iCountInviteUsed', E::ModuleUser()->GetCountInviteUsed($this->oUserCurrent->getId()));
}
示例10: AjaxRemoveBlogInvite
/**
* Обработка ajax-запроса на удаление приглашения подписаться на приватный блог
*
*/
protected function AjaxRemoveBlogInvite()
{
// Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json');
$sUserId = F::GetRequestStr('idUser', null, 'post');
$sBlogId = F::GetRequestStr('idBlog', null, 'post');
// Если пользователь не авторизирован, возвращаем ошибку
if (!E::ModuleUser()->IsAuthorization()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
$this->oUserCurrent = E::ModuleUser()->GetUserCurrent();
// Проверяем существование блога
if (!($oBlog = E::ModuleBlog()->GetBlogById($sBlogId))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
$this->oCurrentBlog = $oBlog;
// Пользователь существует и активен?
$oUser = E::ModuleUser()->GetUserById($sUserId);
if (!$oUser || $oUser->getActivate() != 1) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
// Проверяем, имеет ли право текущий пользователь добавлять invite в blog
$oBlogUser = E::ModuleBlog()->GetBlogUserByBlogIdAndUserId($oBlog->getId(), $this->oUserCurrent->getId());
$bBlogAdministrator = $oBlogUser ? $oBlogUser->IsBlogAdministrator() : false;
if ($oBlog->getOwnerId() != $this->oUserCurrent->getId() && !$this->oUserCurrent->isAdministrator() && !$this->oUserCurrent->isModerator() && !$bBlogAdministrator) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
$oBlogUser = E::ModuleBlog()->GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
if ($oBlogUser->getUserRole() == ModuleBlog::BLOG_USER_ROLE_INVITE) {
// Удаляем связь/приглашение
E::ModuleBlog()->DeleteRelationBlogUser($oBlogUser);
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('blog_user_invite_remove_ok', array('login' => $oUser->getLogin())), E::ModuleLang()->Get('attention'));
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
}
}
示例11: GetInaccessibleBlogsByUser
/**
* Получаем массив идентификаторов блогов,
* которые являются закрытыми для пользователя
*
* @param ModuleUser_EntityUser $oUser
* @return array
*/
public function GetInaccessibleBlogsByUser($oUser = null)
{
if ($oUser && $oUser->isAdministrator()) {
return array();
}
$sUserId = $oUser ? $oUser->getId() : 'quest';
if (false === ($aCloseBlogs = $this->Cache_Get("blog_inaccessible_user_{$sUserId}"))) {
$aCloseBlogs = array();
$aCloseBlogs = $this->oMapperBlog->GetCloseBlogs();
if ($oUser) {
/**
* Получаем массив идентификаторов блогов,
* которые являются откытыми для данного пользователя
*/
$aOpenBlogs = array();
$aOpenBlogs = $this->GetBlogUsersByUserId($oUser->getId(), null, true);
$aCloseBlogs = array_diff($aCloseBlogs, $aOpenBlogs);
}
// Сохраняем в кеш
if ($oUser) {
$this->Cache_Set($aCloseBlogs, "blog_inaccessible_user_{$sUserId}", array('blog_new', 'blog_update', "blog_relation_change_{$oUser->getId()}"), 60 * 60 * 24);
} else {
$this->Cache_Set($aCloseBlogs, "blog_inaccessible_user_{$sUserId}", array('blog_new', 'blog_update'), 60 * 60 * 24 * 3);
}
}
return $aCloseBlogs;
}
示例12: SubmitEdit
//.........这里部分代码省略.........
} else {
$oBlog = $this->Blog_GetBlogById($iBlogId);
}
/**
* Если блог не определен выдаем предупреждение
*/
if (!$oBlog) {
$this->Message_AddErrorSingle($this->Lang_Get('topic_create_blog_error_unknown'), $this->Lang_Get('error'));
return false;
}
/**
* Проверяем права на постинг в блог
*/
if (!$this->ACL_IsAllowBlog($oBlog, $this->oUserCurrent)) {
$this->Message_AddErrorSingle($this->Lang_Get('topic_create_blog_error_noallow'), $this->Lang_Get('error'));
return false;
}
/**
* Проверяем разрешено ли постить топик по времени
*/
if (isPost('submit_topic_publish') and !$oTopic->getPublishDraft() and !$this->ACL_CanPostTopicTime($this->oUserCurrent)) {
$this->Message_AddErrorSingle($this->Lang_Get('topic_time_limit'), $this->Lang_Get('error'));
return;
}
/**
* Теперь можно смело редактировать топик
*/
$oTopic->setBlogId($oBlog->getId());
$oTopic->setText($this->Text_Parser($oTopic->getTextSource()));
$oTopic->setTextShort($oTopic->getText());
/**
* Публикуем или сохраняем в черновиках
*/
$bSendNotify = false;
if (isset($_REQUEST['submit_topic_publish'])) {
$oTopic->setPublish(1);
if ($oTopic->getPublishDraft() == 0) {
$oTopic->setPublishDraft(1);
$oTopic->setDateAdd(date("Y-m-d H:i:s"));
$bSendNotify = true;
}
} else {
$oTopic->setPublish(0);
}
/**
* Принудительный вывод на главную
*/
if ($this->ACL_IsAllowPublishIndex($this->oUserCurrent)) {
if (getRequest('topic_publish_index')) {
$oTopic->setPublishIndex(1);
} else {
$oTopic->setPublishIndex(0);
}
}
/**
* Запрет на комментарии к топику
*/
$oTopic->setForbidComment(0);
if (getRequest('topic_forbid_comment')) {
$oTopic->setForbidComment(1);
}
$this->Hook_Run('topic_edit_before', array('oTopic' => $oTopic, 'oBlog' => $oBlog));
/**
* Сохраняем топик
*/
if ($this->Topic_UpdateTopic($oTopic)) {
$this->Hook_Run('topic_edit_after', array('oTopic' => $oTopic, 'oBlog' => $oBlog, 'bSendNotify' => &$bSendNotify));
/**
* Обновляем данные в комментариях, если топик был перенесен в новый блог
*/
if ($sBlogIdOld != $oTopic->getBlogId()) {
$this->Comment_UpdateTargetParentByTargetId($oTopic->getBlogId(), 'topic', $oTopic->getId());
$this->Comment_UpdateTargetParentByTargetIdOnline($oTopic->getBlogId(), 'topic', $oTopic->getId());
}
/**
* Обновляем количество топиков в блоге
*/
if ($sBlogIdOld != $oTopic->getBlogId()) {
$this->Blog_RecalculateCountTopicByBlogId($sBlogIdOld);
}
$this->Blog_RecalculateCountTopicByBlogId($oTopic->getBlogId());
/**
* Добавляем событие в ленту
*/
$this->Stream_write($oTopic->getUserId(), 'add_topic', $oTopic->getId(), $oTopic->getPublish() && $oBlog->getType() != 'close');
/**
* Рассылаем о новом топике подписчикам блога
*/
if ($bSendNotify) {
$this->Topic_SendNotifyTopicNew($oBlog, $oTopic, $this->oUserCurrent);
}
if (!$oTopic->getPublish() and !$this->oUserCurrent->isAdministrator() and $this->oUserCurrent->getId() != $oTopic->getUserId()) {
Router::Location($oBlog->getUrlFull());
}
Router::Location($oTopic->getUrl());
} else {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
return Router::Action('error');
}
}
示例13: IsAllowEditForumPost
/**
* Проверяет можно или нет пользователю редактировать пост
*
* @param object $oPost
* @param object $oUser
* @return bool
*/
public function IsAllowEditForumPost($oPost, ModuleUser_EntityUser $oUser)
{
/**
* Разрешаем если это админ сайта
*/
if ($oUser->isAdministrator()) {
return true;
}
/**
* Если модератор форума
*/
$oModerator = $this->PluginForum_Forum_GetModeratorByForumIdAndUserId($oPost->getTopic()->getForumId(), $oUser->getId());
if ($oModerator && $oModerator->getAllowEditPost()) {
return true;
}
/**
* Разрешаем если это автор топика
*/
if ($oPost->getUserId() == $oUser->getId()) {
$sDateComment = strtotime($oPost->getDateAdd());
if ($sDateComment > time() - Config::Get('plugin.forum.acl.edit.post.time')) {
return true;
}
}
return false;
}
示例14: AjaxAddTalkUser
/**
* Добавление нового участника разговора (ajax)
*
*/
public function AjaxAddTalkUser()
{
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('json');
$aUsers = getRequest('users', null, 'post');
$idTalk = getRequestStr('target_id', null, 'post');
/**
* Валидация
*/
if (!is_array($aUsers)) {
return $this->EventErrorDebug();
}
/**
* Если пользователь не авторизирован, возвращаем ошибку
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddErrorSingle($this->Lang_Get('common.error.need_authorization'), $this->Lang_Get('common.error.error'));
return;
}
/**
* Если разговор не найден, или пользователь не является его автором (или админом), возвращаем ошибку
*/
if (!($oTalk = $this->Talk_GetTalkById($idTalk)) || $oTalk->getUserId() != $this->oUserCurrent->getId() && !$this->oUserCurrent->isAdministrator()) {
$this->Message_AddErrorSingle($this->Lang_Get('talk.notices.not_found'), $this->Lang_Get('common.error.error'));
return;
}
/**
* Получаем список всех участников разговора
*/
$aTalkUsers = $oTalk->getTalkUsers();
/**
* Получаем список пользователей, которые не принимают письма
*/
$aUserInBlacklist = $this->Talk_GetBlacklistByTargetId($this->oUserCurrent->getId());
/**
* Ограничения на максимальное число участников разговора
*/
if (count($aTalkUsers) >= Config::Get('module.talk.max_users') and !$this->oUserCurrent->isAdministrator()) {
$this->Message_AddError($this->Lang_Get('talk.add.notices.users_error_many'), $this->Lang_Get('common.error.error'));
return;
}
/**
* Обрабатываем добавление по каждому переданному логину пользователя
*/
foreach ($aUsers as $sUser) {
$sUser = trim($sUser);
if ($sUser == '') {
continue;
}
/**
* Попытка добавить себя
*/
if (strtolower($sUser) == strtolower($this->oUserCurrent->getLogin())) {
$aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('common.error.error'), 'sMsg' => $this->Lang_Get('user_list_add.notices.error_self'));
continue;
}
if (($oUser = $this->User_GetUserByLogin($sUser)) && $oUser->getActivate() == 1) {
if (!in_array($oUser->getId(), $aUserInBlacklist)) {
if (array_key_exists($oUser->getId(), $aTalkUsers)) {
switch ($aTalkUsers[$oUser->getId()]->getUserActive()) {
/**
* Если пользователь ранее был удален админом разговора, то добавляем его снова
*/
case ModuleTalk::TALK_USER_DELETE_BY_AUTHOR:
if ($this->Talk_AddTalkUser(Engine::GetEntity('Talk_TalkUser', array('talk_id' => $idTalk, 'user_id' => $oUser->getId(), 'date_last' => null, 'talk_user_active' => ModuleTalk::TALK_USER_ACTIVE)))) {
$this->Talk_SendNotifyTalkNew($oUser, $this->oUserCurrent, $oTalk);
$oViewer = $this->Viewer_GetLocalViewer();
$oViewer->Assign('user', $oUser, true);
$oViewer->Assign('showActions', true, true);
$aResult[] = array('bStateError' => false, 'sMsgTitle' => $this->Lang_Get('common.attention'), 'sMsg' => $this->Lang_Get('user_list_add.notices.success_add', array('login', htmlspecialchars($sUser))), 'user_id' => $oUser->getId(), 'user_login' => $oUser->getLogin(), 'html' => $oViewer->Fetch("component@talk.participants-item"));
$bState = true;
} else {
$aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('common.error.error'), 'sMsg' => $this->Lang_Get('common.error.system.base'));
}
break;
/**
* Если пользователь является активным участником разговора, возвращаем ошибку
*/
/**
* Если пользователь является активным участником разговора, возвращаем ошибку
*/
case ModuleTalk::TALK_USER_ACTIVE:
$aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('common.error.error'), 'sMsg' => $this->Lang_Get('user_list_add.notices.error_already_added', array('login' => htmlspecialchars($sUser))));
break;
/**
* Если пользователь удалил себя из разговора самостоятельно, то блокируем повторное добавление
*/
/**
* Если пользователь удалил себя из разговора самостоятельно, то блокируем повторное добавление
*/
case ModuleTalk::TALK_USER_DELETE_BY_SELF:
$aResult[] = array('bStateError' => true, 'sMsgTitle' => $this->Lang_Get('common.error.error'), 'sMsg' => $this->Lang_Get('talk.users.notices.deleted', array('login' => htmlspecialchars($sUser))));
break;
default:
//.........这里部分代码省略.........
示例15: IsAllowPublishIndex
/**
* Проверяет может ли пользователь публиковать на главной
*
* @param Entity_User $oUser
* @return bool
*/
public function IsAllowPublishIndex(ModuleUser_EntityUser $oUser)
{
if ($oUser->isAdministrator()) {
return true;
}
return false;
}