1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-09 16:17:14 +02:00

Fixes #1075, Fixes #441 - Forum permissions cache was stored incorrectly, causing incorrect permissions for some users.

This commit is contained in:
Cameron
2015-06-25 18:17:08 -07:00
parent 6b7e1c06c3
commit b427af4f31
3 changed files with 16 additions and 5 deletions

View File

@@ -46,6 +46,7 @@ class ecache {
public function setMD5($text)
{
$this->CachePageMD5 = md5($text);
return $this;
}
/**

View File

@@ -7,7 +7,8 @@ function print_item($thread_id)
$gen = new convert;
include_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
$thread_info = $forum->thread_get($thread_id,0,999);
$thread_info = $forum->threadGet($thread_id,0,999);
$thread_name = $tp->toHTML($thread_info[0]['thread_name'], TRUE);
$text = "<b>".$thread_name."</b><br />
".$thread_info[0]['user_name'].", ".$gen->convert_date($thread_info[0]['thread_datestamp'], "forum")."<br /><br />
@@ -35,7 +36,7 @@ function email_item($thread_id)
$gen = new convert;
include_once(e_PLUGIN.'forum/forum_class.php');
$forum = new e107forum;
$thread_info = $forum->thread_get($thread_id,0,999);
$thread_info = $forum->threadGet($thread_id,0,999);
$thread_name = $tp->toHTML($thread_info[0]['thread_name'], TRUE);
$text = "<b>".$thread_name."</b><br />

View File

@@ -474,17 +474,21 @@ class e107forum
private function loadPermList()
{
if($tmp = e107::getCache()->retrieve_sys('forum_perms'))
if($tmp = e107::getCache()->setMD5(e_LANGUAGE.USERCLASS_LIST)->retrieve('forum_perms'))
{
e107::getMessage()->addDebug("Using Permlist cache: True");
$this->permList = e107::unserialize($tmp);
// print_a($this->permList);
}
else
{
e107::getMessage()->addDebug("Using Permlist cache: False");
$this->_getForumPermList();
$tmp = e107::serialize($this->permList, false);
e107::getCache()->set_sys('forum_perms', $tmp);
e107::getCache()->setMD5(e_LANGUAGE.USERCLASS_LIST)->set('forum_perms', $tmp);
}
unset($tmp);
}
@@ -572,6 +576,11 @@ class e107forum
function checkPerm($forumId, $type='view')
{
// print_a( $this->permList[$type]);
if(empty($this->permList[$type]))
{
// return false;
}
return (in_array($forumId, $this->permList[$type]));
}