2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2014-10-08 08:20:29 +03:00
|
|
|
|
/*
|
|
|
|
|
* LiveStreet CMS
|
|
|
|
|
* Copyright © 2013 OOO "ЛС-СОФТ"
|
|
|
|
|
*
|
|
|
|
|
* ------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* Official site: www.livestreetcms.com
|
|
|
|
|
* Contact e-mail: office@livestreetcms.com
|
|
|
|
|
*
|
|
|
|
|
* GNU General Public License, version 2:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
*
|
|
|
|
|
* ------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* @link http://www.livestreetcms.com
|
|
|
|
|
* @copyright 2013 OOO "ЛС-СОФТ"
|
|
|
|
|
* @author Maxim Mzhelskiy <rus.engine@gmail.com>
|
|
|
|
|
*
|
|
|
|
|
*/
|
2008-09-21 09:36:57 +03:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ACL(Access Control List)
|
|
|
|
|
* Модуль для разруливания ограничений по карме/рейтингу юзера
|
|
|
|
|
*
|
2014-10-08 08:20:29 +03:00
|
|
|
|
* @package application.modules.acl
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @since 1.0
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
2010-05-27 17:02:43 +03:00
|
|
|
|
class ModuleACL extends Module {
|
2009-11-25 02:37:01 +02:00
|
|
|
|
/**
|
|
|
|
|
* Коды механизма удаления блога
|
|
|
|
|
*/
|
|
|
|
|
const CAN_DELETE_BLOG_EMPTY_ONLY = 1;
|
|
|
|
|
const CAN_DELETE_BLOG_WITH_TOPICS = 2;
|
2012-06-12 19:11:35 +03:00
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Инициализация модуля
|
|
|
|
|
*
|
|
|
|
|
*/
|
2012-06-12 19:11:35 +03:00
|
|
|
|
public function Init() {
|
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь создавать блоги
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanCreateBlog($oUser) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_blog',array('callback'=>function($oUser,$aParams) use($that) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем хватает ли рейтинга юзеру чтоб создать блог
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.create.blog.rating')) {
|
|
|
|
|
return $that->Lang_Get('blog.add.alerts.acl');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
2014-10-07 15:36:53 +03:00
|
|
|
|
* Проверяет может ли пользователь создавать топики
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2014-10-07 15:36:53 +03:00
|
|
|
|
* @param ModuleTopic_EntityTopicType $oTopicType Объект типа топика
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanAddTopic($oUser,$oTopicType) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_topic',array('callback'=>function($oUser,$aParams) use($that) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем хватает ли рейтинга юзеру чтоб создать топик
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->getRating()<=Config::Get('acl.create.topic.limit_rating')) {
|
|
|
|
|
return $that->Lang_Get('topic.add.notices.rating_limit');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем лимит по времени
|
|
|
|
|
*/
|
|
|
|
|
if (!$that->CanPostTopicTime($oUser)) {
|
|
|
|
|
return $that->Lang_Get('topic.add.notices.time_limit');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь создавать комментарии
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2014-10-07 15:36:53 +03:00
|
|
|
|
* @param ModuleTopic_EntityTopic|null $oTopic Топик
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanPostComment($oUser,$oTopic=null) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_topic_comment',array('callback'=>function($oUser,$aParams) use($that,$oTopic) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем на закрытый блог
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic and !$that->IsAllowShowBlog($oTopic->getBlog(),$oUser)) {
|
|
|
|
|
return $that->Lang_Get('topic.comments.notices.acl');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ограничение на рейтинг
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.create.comment.rating')) {
|
|
|
|
|
return $that->Lang_Get('topic.comments.notices.acl');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ограничение по времени
|
|
|
|
|
*/
|
|
|
|
|
if (Config::Get('acl.create.comment.limit_time')>0 and $oUser->getDateCommentLast()) {
|
|
|
|
|
$sDateCommentLast=strtotime($oUser->getDateCommentLast());
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.create.comment.limit_time_rating') and ((time()-$sDateCommentLast)<Config::Get('acl.create.comment.limit_time'))) {
|
|
|
|
|
return $that->Lang_Get('topic.comments.notices.limit');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
2009-11-03 23:53:55 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь создавать топик по времени
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2009-11-03 23:53:55 +02:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanPostTopicTime($oUser) {
|
2009-11-03 23:53:55 +02:00
|
|
|
|
// Для администраторов ограничение по времени не действует
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if($oUser->isAdministrator()
|
|
|
|
|
or Config::Get('acl.create.topic.limit_time')==0
|
|
|
|
|
or $oUser->getRating()>=Config::Get('acl.create.topic.limit_time_rating'))
|
|
|
|
|
return true;
|
|
|
|
|
|
2009-11-04 12:36:08 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем, если топик опубликованный меньше чем acl.create.topic.limit_time секунд назад
|
|
|
|
|
*/
|
|
|
|
|
$aTopics=$this->Topic_GetLastTopicsByUserId($oUser->getId(),Config::Get('acl.create.topic.limit_time'));
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if(isset($aTopics['count']) and $aTopics['count']>0){
|
2009-11-04 12:36:08 +02:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2014-10-07 15:36:53 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет возможность отправки личного сообщения
|
|
|
|
|
*
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function CanAddTalk($oUser) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_talk',array('callback'=>function($oUser,$aParams) use($that) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if (!$that->CanSendTalkTime($oUser)) {
|
|
|
|
|
return $that->Lang_Get('talk.notices.time_limit');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
|
|
|
|
}
|
2009-11-04 12:36:08 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь отправить инбокс по времени
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2009-11-04 12:36:08 +02:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanSendTalkTime($oUser) {
|
2009-11-04 12:36:08 +02:00
|
|
|
|
// Для администраторов ограничение по времени не действует
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if($oUser->isAdministrator()
|
|
|
|
|
or Config::Get('acl.create.talk.limit_time')==0
|
|
|
|
|
or $oUser->getRating()>=Config::Get('acl.create.talk.limit_time_rating'))
|
|
|
|
|
return true;
|
|
|
|
|
|
2009-11-04 12:36:08 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем, если топик опубликованный меньше чем acl.create.topic.limit_time секунд назад
|
|
|
|
|
*/
|
|
|
|
|
$aTalks=$this->Talk_GetLastTalksByUserId($oUser->getId(),Config::Get('acl.create.talk.limit_time'));
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if(isset($aTalks['count']) and $aTalks['count']>0){
|
2009-11-04 12:36:08 +02:00
|
|
|
|
return false;
|
2009-11-03 23:53:55 +02:00
|
|
|
|
}
|
|
|
|
|
return true;
|
2012-06-12 19:11:35 +03:00
|
|
|
|
}
|
2009-11-04 20:24:21 +02:00
|
|
|
|
/**
|
2014-10-07 15:36:53 +03:00
|
|
|
|
* Проверяет может ли пользователь создавать комментарии к личным сообщениям
|
2009-11-04 20:24:21 +02:00
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2009-11-04 20:24:21 +02:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanPostTalkComment($oUser) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_talk_comment',array('callback'=>function($oUser,$aParams) use($that) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
$aTalkComments=$that->Comment_GetCommentsByUserId($oUser->getId(),'talk',1,1);
|
|
|
|
|
/**
|
|
|
|
|
* Если комментариев не было
|
|
|
|
|
*/
|
|
|
|
|
if(!is_array($aTalkComments) or $aTalkComments['count']==0){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Достаем последний комментарий
|
|
|
|
|
*/
|
|
|
|
|
$oComment=array_shift($aTalkComments['collection']);
|
|
|
|
|
$sDate=strtotime($oComment->getDate());
|
2012-06-12 19:11:35 +03:00
|
|
|
|
|
2014-10-07 15:36:53 +03:00
|
|
|
|
if($sDate and ((time()-$sDate)<Config::Get('acl.create.talk_comment.limit_time'))) {
|
|
|
|
|
return $that->Lang_Get('talk.add.notices.time_limit');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2009-11-04 20:24:21 +02:00
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь голосовать за конкретный комментарий
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @param ModuleComment_EntityComment $oComment Комментарий
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanVoteComment($oUser,$oComment) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'vote_comment',array('callback'=>function($oUser,$aParams) use($that,$oComment) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Голосует автор комментария?
|
|
|
|
|
*/
|
|
|
|
|
if ($oComment->getUserId()==$oUser->getId()) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_self');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Пользователь уже голосовал?
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopicCommentVote=$that->Vote_GetVote($oComment->getId(),'comment',$oUser->getId())) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_already_voted');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ограничение по рейтингу
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.vote.comment.rating')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_acl');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Время голосования истекло?
|
|
|
|
|
*/
|
|
|
|
|
if (strtotime($oComment->getDate())<=time()-Config::Get('acl.vote.comment.limit_time')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_time');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь голосовать за конкретный блог
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanVoteBlog($oUser, $oBlog) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'vote_blog',array('callback'=>function($oUser,$aParams) use($that,$oBlog) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Голосует за свой блог?
|
|
|
|
|
*/
|
|
|
|
|
if ($oBlog->getOwnerId()==$oUser->getId()) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_self');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Уже голосовал?
|
|
|
|
|
*/
|
|
|
|
|
if ($oBlogVote=$that->Vote_GetVote($oBlog->getId(),'blog',$oUser->getId())) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_already_voted');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Если блог закрытый, проверяем является ли пользователь его читателем
|
|
|
|
|
*/
|
|
|
|
|
if($oBlog->getType()=='close') {
|
|
|
|
|
$oBlogUser = $that->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId());
|
|
|
|
|
if(!$oBlogUser || $oBlogUser->getUserRole()<ModuleBlog::BLOG_USER_ROLE_GUEST) {
|
|
|
|
|
return $that->Lang_Get('blog.vote.notices.error_close');
|
|
|
|
|
}
|
|
|
|
|
} elseif($oBlog->getType()=='personal') {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_acl');
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.vote.blog.rating')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_acl');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь голосовать за конкретный топик
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic Топик
|
2014-10-07 15:36:53 +03:00
|
|
|
|
* @param int $iValue Направление голосования
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanVoteTopic($oUser, $oTopic, $iValue) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'vote_topic',array('callback'=>function($oUser,$aParams) use($that,$oTopic,$iValue) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Голосует автор топика?
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getUserId()==$oUser->getId()) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_self');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Пользователь уже голосовал?
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopicVote=$that->Vote_GetVote($oTopic->getId(),'topic',$oUser->getId())) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_already_voted');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Время голосования истекло?
|
|
|
|
|
*/
|
|
|
|
|
if (strtotime($oTopic->getDateAdd())<=time()-Config::Get('acl.vote.topic.limit_time')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_time');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ограничение по рейтингу
|
|
|
|
|
*/
|
|
|
|
|
if ($iValue!=0 and $oUser->getRating()<Config::Get('acl.vote.topic.rating')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_acl');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяет может ли пользователь голосовать за конкретного пользователя
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @param ModuleUser_EntityUser $oUserTarget Пользователь за которого голосуем
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanVoteUser($oUser, $oUserTarget) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'vote_user',array('callback'=>function($oUser,$aParams) use($that,$oUserTarget) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Голосует за себя?
|
|
|
|
|
*/
|
|
|
|
|
if ($oUserTarget->getId()==$oUser->getId()) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_self');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Уже голосовал?
|
|
|
|
|
*/
|
|
|
|
|
if ($oUserVote=$that->Vote_GetVote($oUserTarget->getId(),'user',$oUser->getId())) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_already_voted');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Ограничение по рейтингу
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->getRating()<Config::Get('acl.vote.user.rating')) {
|
|
|
|
|
return $that->Lang_Get('vote.notices.error_acl');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
2008-10-16 07:29:15 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно ли юзеру слать инвайты
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @return bool
|
2008-10-16 07:29:15 +03:00
|
|
|
|
*/
|
2014-10-07 15:36:53 +03:00
|
|
|
|
public function CanSendInvite($oUser) {
|
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'vote_user',array('callback'=>function($oUser,$aParams) use($that) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($that->User_GetCountInviteAvailable($oUser)==0) {
|
|
|
|
|
return $that->Lang_Get('user.settings.invites.available_no');
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2008-10-16 07:29:15 +03:00
|
|
|
|
}
|
2009-11-20 01:23:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно или нет юзеру постить в данный блог
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2013-04-01 11:54:39 +03:00
|
|
|
|
* @return bool
|
2009-11-20 01:23:49 +02:00
|
|
|
|
*/
|
2012-06-12 19:11:35 +03:00
|
|
|
|
public function IsAllowBlog($oBlog,$oUser) {
|
2009-11-20 01:23:49 +02:00
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oBlog->getOwnerId()==$oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2009-11-28 21:58:30 +02:00
|
|
|
|
if ($oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId())) {
|
2014-10-07 15:36:53 +03:00
|
|
|
|
if ($oUser->getRating()>=$oBlog->getLimitRatingTopic() or $oBlogUser->getIsAdministrator() or $oBlogUser->getIsModerator()) {
|
2009-11-20 01:23:49 +02:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2012-06-12 19:11:35 +03:00
|
|
|
|
}
|
2013-04-01 11:54:39 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно или нет юзеру просматривать блог
|
|
|
|
|
*
|
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowShowBlog($oBlog,$oUser) {
|
|
|
|
|
if ($oBlog->getType()!='close') {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oBlog->getOwnerId()==$oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId()) and $oBlogUser->getUserRole()>ModuleBlog::BLOG_USER_ROLE_GUEST) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2009-11-20 01:23:49 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно или нет пользователю редактировать данный топик
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic Топик
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2009-11-20 01:23:49 +02:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowEditTopic($oTopic,$oUser) {
|
|
|
|
|
/**
|
|
|
|
|
* Разрешаем если это админ сайта или автор топика
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getUserId()==$oUser->getId() or $oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Если автор(смотритель) блога
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getBlog()->getOwnerId()==$oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Если модер или админ блога
|
|
|
|
|
*/
|
2012-12-18 19:29:15 +02:00
|
|
|
|
if ($this->User_GetUserCurrent() and $this->User_GetUserCurrent()->getId()==$oUser->getId()) {
|
|
|
|
|
/**
|
|
|
|
|
* Для авторизованного пользователя данный код будет работать быстрее
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getBlog()->getUserIsAdministrator() or $oTopic->getBlog()->getUserIsModerator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oTopic->getBlogId(),$oUser->getId());
|
|
|
|
|
if ($oBlogUser and ($oBlogUser->getIsModerator() or $oBlogUser->getIsAdministrator())) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2010-02-01 12:23:32 +02:00
|
|
|
|
}
|
2012-12-18 19:29:15 +02:00
|
|
|
|
|
2009-11-20 01:23:49 +02:00
|
|
|
|
return false;
|
2012-06-12 19:11:35 +03:00
|
|
|
|
}
|
2014-01-15 14:00:01 +02:00
|
|
|
|
/**
|
2014-04-25 08:24:15 +03:00
|
|
|
|
* Проверка на редактирование комментария
|
|
|
|
|
*
|
2014-01-15 14:00:01 +02:00
|
|
|
|
* @param ModuleComment_EntityComment $oComment
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowEditComment($oComment,$oUser) {
|
2014-04-25 08:24:15 +03:00
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (!in_array($oComment->getTargetType(),(array)Config::Get('module.comment.edit_target_allow'))) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oComment->getUserId()==$oUser->getId() and $oUser->getRating()>=Config::Get('acl.update.comment.rating')) {
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем на лимит времени
|
|
|
|
|
*/
|
|
|
|
|
if (!Config::Get('acl.update.comment.limit_time') or (time()-strtotime($oComment->getDate()) <= Config::Get('acl.update.comment.limit_time')) ) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2014-09-19 11:17:59 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверка на возможность добавления комментария в избранное
|
|
|
|
|
*
|
|
|
|
|
* @param $oComment
|
|
|
|
|
* @param $oUser
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowFavouriteComment($oComment,$oUser) {
|
2014-10-07 15:36:53 +03:00
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'create_comment_favourite',array('callback'=>function($oUser,$aParams) use($that,$oComment) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (!in_array($oComment->getTargetType(),array('topic'))) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if (!$oTarget=$oComment->getTarget()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
if ($oComment->getTargetType()=='topic') {
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем права на просмотр топика
|
|
|
|
|
*/
|
|
|
|
|
if (!$that->IsAllowShowTopic($oTarget,$oUser)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}));
|
2014-09-19 11:17:59 +03:00
|
|
|
|
}
|
2014-04-25 08:24:15 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверка на удаление комментария
|
|
|
|
|
*
|
|
|
|
|
* @param ModuleComment_EntityComment $oComment
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowDeleteComment($oComment,$oUser) {
|
2014-01-15 14:00:01 +02:00
|
|
|
|
/**
|
2014-04-25 08:24:15 +03:00
|
|
|
|
* Разрешаем если это админ сайта
|
2014-01-15 14:00:01 +02:00
|
|
|
|
*/
|
2014-04-25 08:24:15 +03:00
|
|
|
|
if ($oUser and $oUser->isAdministrator()) {
|
2014-01-15 14:00:01 +02:00
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2009-11-22 21:19:20 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно или нет пользователю удалять данный топик
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleTopic_EntityTopic $oTopic Топик
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @return bool
|
2009-11-22 21:19:20 +02:00
|
|
|
|
*/
|
2012-06-12 19:11:35 +03:00
|
|
|
|
public function IsAllowDeleteTopic($oTopic,$oUser) {
|
2014-10-07 15:36:53 +03:00
|
|
|
|
$that=$this; // fix for PHP < 5.4
|
|
|
|
|
return $this->Rbac_IsAllowUser($oUser,'remove_topic',array('callback'=>function($oUser,$aParams) use($that,$oTopic) {
|
|
|
|
|
if (!$oUser) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Разрешаем если это админ сайта или автор топика
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getUserId()==$oUser->getId() or $oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Если автор(смотритель) блога
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getBlog()->getOwnerId()==$oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Если модер или админ блога
|
|
|
|
|
*/
|
|
|
|
|
if ($that->User_GetUserCurrent() and $that->User_GetUserCurrent()->getId()==$oUser->getId()) {
|
|
|
|
|
/**
|
|
|
|
|
* Для авторизованного пользователя данный код будет работать быстрее
|
|
|
|
|
*/
|
|
|
|
|
if ($oTopic->getBlog()->getUserIsAdministrator() or $oTopic->getBlog()->getUserIsModerator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$oBlogUser=$that->Blog_GetBlogUserByBlogIdAndUserId($oTopic->getBlogId(),$oUser->getId());
|
|
|
|
|
if ($oBlogUser and ($oBlogUser->getIsModerator() or $oBlogUser->getIsAdministrator())) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}));
|
2010-02-01 12:23:32 +02:00
|
|
|
|
}
|
2014-09-19 11:17:59 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверка на возможность просмотра топика
|
|
|
|
|
*
|
|
|
|
|
* @param $oTopic
|
|
|
|
|
* @param $oUser
|
|
|
|
|
*
|
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowShowTopic($oTopic,$oUser) {
|
|
|
|
|
if (!$oTopic) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем права на просмотр топика
|
|
|
|
|
*/
|
|
|
|
|
if (!$oTopic->getPublish() and (!$oUser or ($oUser->getId()!=$oTopic->getUserId() and !$oUser->isAdministrator()))) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Определяем права на отображение записи из закрытого блога
|
|
|
|
|
*/
|
|
|
|
|
if (!$this->IsAllowShowBlog($oTopic->getBlog(),$oUser)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2009-11-25 02:37:01 +02:00
|
|
|
|
/**
|
|
|
|
|
* Проверяет можно или нет пользователю удалять данный блог
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @return bool
|
2009-11-25 02:37:01 +02:00
|
|
|
|
*/
|
2012-06-12 19:11:35 +03:00
|
|
|
|
public function IsAllowDeleteBlog($oBlog,$oUser) {
|
2009-11-25 02:37:01 +02:00
|
|
|
|
/**
|
|
|
|
|
* Разрешаем если это админ сайта или автор блога
|
|
|
|
|
*/
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return self::CAN_DELETE_BLOG_WITH_TOPICS;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Разрешаем удалять администраторам блога и автору, но только пустой
|
|
|
|
|
*/
|
2010-04-29 22:45:54 +03:00
|
|
|
|
if($oBlog->getOwnerId()==$oUser->getId()) {
|
2009-11-25 02:37:01 +02:00
|
|
|
|
return self::CAN_DELETE_BLOG_EMPTY_ONLY;
|
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
|
2012-07-17 09:06:56 +03:00
|
|
|
|
$oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId());
|
2009-11-25 02:37:01 +02:00
|
|
|
|
if($oBlogUser and $oBlogUser->getIsAdministrator()) {
|
2012-06-12 19:11:35 +03:00
|
|
|
|
return self::CAN_DELETE_BLOG_EMPTY_ONLY;
|
2009-11-25 02:37:01 +02:00
|
|
|
|
}
|
|
|
|
|
return false;
|
2011-09-26 16:00:27 +03:00
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
/**
|
2011-09-26 16:00:27 +03:00
|
|
|
|
* Проверяет может ли пользователь удалить комментарий
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2011-09-26 16:00:27 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function CanDeleteComment($oUser) {
|
|
|
|
|
if (!$oUser || !$oUser->isAdministrator()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
return true;
|
2011-09-26 16:00:27 +03:00
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
/**
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* Проверяет может ли пользователь публиковать на главной
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowPublishIndex(ModuleUser_EntityUser $oUser) {
|
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
return false;
|
2011-09-27 12:11:13 +03:00
|
|
|
|
}
|
2012-06-12 19:11:35 +03:00
|
|
|
|
/**
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* Проверяет можно или нет пользователю редактировать данный блог
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowEditBlog($oBlog,$oUser) {
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Разрешаем если это создатель блога
|
|
|
|
|
*/
|
|
|
|
|
if ($oBlog->getOwnerId() == $oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Явлется ли авторизованный пользователь администратором блога
|
|
|
|
|
*/
|
|
|
|
|
$oBlogUser = $this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
|
2011-09-27 12:11:13 +03:00
|
|
|
|
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if ($oBlogUser && $oBlogUser->getIsAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* Проверяет можно или нет пользователю управлять пользователями блога
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleBlog_EntityBlog $oBlog Блог
|
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
2011-09-27 12:11:13 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function IsAllowAdminBlog($oBlog,$oUser) {
|
2012-06-12 19:11:35 +03:00
|
|
|
|
if ($oUser->isAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Разрешаем если это создатель блога
|
|
|
|
|
*/
|
|
|
|
|
if ($oBlog->getOwnerId() == $oUser->getId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Явлется ли авторизованный пользователь администратором блога
|
|
|
|
|
*/
|
|
|
|
|
$oBlogUser = $this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
|
|
|
|
|
if ($oBlogUser && $oBlogUser->getIsAdministrator()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2012-04-13 17:24:53 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверка на ограничение по времени на постинг на стене
|
|
|
|
|
*
|
2012-06-12 19:11:35 +03:00
|
|
|
|
* @param ModuleUser_EntityUser $oUser Пользователь
|
|
|
|
|
* @param ModuleWall_EntityWall $oWall Объект сообщения на стене
|
2012-04-13 17:24:53 +03:00
|
|
|
|
* @return bool
|
|
|
|
|
*/
|
|
|
|
|
public function CanAddWallTime($oUser,$oWall) {
|
2012-06-12 19:11:35 +03:00
|
|
|
|
/**
|
|
|
|
|
* Для администраторов ограничение по времени не действует
|
|
|
|
|
*/
|
2012-04-13 17:24:53 +03:00
|
|
|
|
if($oUser->isAdministrator()
|
|
|
|
|
or Config::Get('acl.create.wall.limit_time')==0
|
|
|
|
|
or $oUser->getRating()>=Config::Get('acl.create.wall.limit_time_rating')) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
if ($oWall->getUserId()==$oWall->getWallUserId()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получаем последнее сообщение
|
|
|
|
|
*/
|
|
|
|
|
$aWall=$this->Wall_GetWall(array('user_id'=>$oWall->getUserId()),array('id'=>'desc'),1,1,array());
|
|
|
|
|
/**
|
|
|
|
|
* Если сообщений нет
|
|
|
|
|
*/
|
|
|
|
|
if($aWall['count']==0){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$oWallLast = array_shift($aWall['collection']);
|
|
|
|
|
$sDate = strtotime($oWallLast->getDateAdd());
|
|
|
|
|
if($sDate and ((time()-$sDate)<Config::Get('acl.create.wall.limit_time'))) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2014-05-28 08:37:30 +03:00
|
|
|
|
}
|