diff --git a/group.php b/group.php index 6e773ae82..acae6e4ee 100644 --- a/group.php +++ b/group.php @@ -199,14 +199,30 @@ if (!$group_id) { if (!empty($_POST['add']) || !empty($_POST['remove']) || !empty($_POST['approve']) || !empty($_POST['deny'])) { if (!$is_moderator) { + set_die_append_msg(false, false, $group_id); bb_die($lang['NOT_GROUP_MODERATOR']); } if (!empty($_POST['add'])) { if (isset($_POST['username']) && !($row = get_userdata($_POST['username'], true))) { + set_die_append_msg(false, false, $group_id); bb_die($lang['COULD_NOT_ADD_USER']); } + // Prevent adding moderator + if ($row['user_id'] == $group_moderator) { + set_die_append_msg(false, false, $group_id); + bb_die(sprintf($lang['USER_IS_MOD_GROUP'], profile_url($row))); + } + + // Prevent infinity user adding into group + if ($is_member = DB()->fetch_row("SELECT user_id FROM " . BB_USER_GROUP . " WHERE group_id = $group_id AND user_id = " . $row['user_id'] . " LIMIT 1")) { + if ($is_member['user_id']) { + set_die_append_msg(false, false, $group_id); + bb_die(sprintf($lang['USER_IS_MEMBER_GROUP'], profile_url($row))); + } + } + \TorrentPier\Legacy\Group::add_user_into_group($group_id, $row['user_id']); if ($bb_cfg['group_send_email']) { @@ -234,6 +250,7 @@ if (!$group_id) { $sql_in[] = (int)$members_id; } if (!$sql_in = implode(',', $sql_in)) { + set_die_append_msg(false, false, $group_id); bb_die($lang['NONE_SELECTED']); } diff --git a/library/language/source/main.php b/library/language/source/main.php index e88356fd0..48a2b371e 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -725,7 +725,8 @@ $lang['GROUP_REQUEST'] = 'A request to join your group has been made.'; $lang['GROUP_APPROVED'] = 'Your request has been approved.'; $lang['GROUP_ADDED'] = 'You have been added to this usergroup.'; $lang['ALREADY_MEMBER_GROUP'] = 'You are already a member of this group'; -$lang['USER_IS_MEMBER_GROUP'] = 'User is already a member of this group'; +$lang['USER_IS_MEMBER_GROUP'] = '%s is already a member of this group'; +$lang['USER_IS_MOD_GROUP'] = '%s is a moderator of this group'; $lang['GROUP_TYPE_UPDATED'] = 'Successfully updated group type.'; $lang['EFFECTIVE_DATE'] = 'Effective Date';