mawby maybe it will be interesting to you.
If user has participated in the topic but then was banned, he still has the ability to edit your post in topic.
To avoid this, I added a new plugin.
Product: LAM - Ban From Thread
Hook Location: editpost_start
Title: LAM - No Permission Message (Edit Post)
Execution Order: 5
Plugin is Active: Yes
Plugin PHP Code:
PHP Code:
if (!can_moderate($threadinfo['forumid']) AND (($threadinfo['LAM_BanFromThread'] AND in_array($vbulletin->userinfo['userid'], preg_split('#\s*,\s*#s', $threadinfo['LAM_BanFromThread'], -1, PREG_SPLIT_NO_EMPTY))) OR ($vbulletin->options['LAM_BanFromThread_ForumBans'] AND $foruminfo['LAM_BanFromThread'] AND in_array($vbulletin->userinfo['userid'], preg_split('#\s*,\s*#s', $foruminfo['LAM_BanFromThread'], -1, PREG_SPLIT_NO_EMPTY))))) {
eval(standard_error(fetch_error('LAM_BanFromThread_NoPermission')));
}
Another small improvement.
To enable topicstarter edit banlist.
Edit the SHOWTHREAD template...
Find:
Code:
<vb:if condition="!empty($vboptions['LAM_BanFromThread_UserGroups']) AND in_array($bbuserinfo['usergroupid'], array($vboptions['LAM_BanFromThread_UserGroups']))">
and replace:
Code:
<vb:if condition="(!empty($vboptions['LAM_BanFromThread_UserGroups']) AND in_array($bbuserinfo['usergroupid'], array($vboptions['LAM_BanFromThread_UserGroups']))) OR ($threadinfo['postuserid'] == $bbuserinfo['userid'])">
In plugin "LAM - Perform Thread Manage Actions"
find:
PHP Code:
if ($_REQUEST['do'] == 'LAM_BanFromThread') {
if (!can_moderate($threadinfo['forumid'], 'canmanagethreads') AND (empty($vbulletin->options['LAM_BanFromThread_UserGroups']) OR !in_array($vbulletin->userinfo['usergroupid'], preg_split('#\s*,\s*#s', $vbulletin->options['LAM_BanFromThread_UserGroups'], -1, PREG_SPLIT_NO_EMPTY)))) {
print_no_permission();
}
and replace:
PHP Code:
if ($_REQUEST['do'] == 'LAM_BanFromThread') {
if ((!can_moderate($threadinfo['forumid'], 'canmanagethreads') AND (empty($vbulletin->options['LAM_BanFromThread_UserGroups']) OR !in_array($vbulletin->userinfo['usergroupid'], preg_split('#\s*,\s*#s', $vbulletin->options['LAM_BanFromThread_UserGroups'], -1, PREG_SPLIT_NO_EMPTY)))) AND ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'])) {
print_no_permission();
}
find:
PHP Code:
} elseif ($_POST['do'] == 'LAM_BanFromThread_Update') {
if (!can_moderate($threadinfo['forumid'], 'canmanagethreads') AND (empty($vbulletin->options['LAM_BanFromThread_UserGroups']) OR !in_array($vbulletin->userinfo['usergroupid'], preg_split('#\s*,\s*#s', $vbulletin->options['LAM_BanFromThread_UserGroups'], -1, PREG_SPLIT_NO_EMPTY)))) {
print_no_permission();
}
and replace:
PHP Code:
} elseif ($_POST['do'] == 'LAM_BanFromThread_Update') {
if ((!can_moderate($threadinfo['forumid'], 'canmanagethreads') AND (empty($vbulletin->options['LAM_BanFromThread_UserGroups']) OR !in_array($vbulletin->userinfo['usergroupid'], preg_split('#\s*,\s*#s', $vbulletin->options['LAM_BanFromThread_UserGroups'], -1, PREG_SPLIT_NO_EMPTY)))) AND ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'])) {
print_no_permission();
}