function testMemberGroupTimeoutDouble() { $group_id = 4; $member_id = 3; bump_member_group_timeout($member_id, $group_id, -10, false); $this->assertTrue(in_array($group_id, $GLOBALS['FORUM_DRIVER']->get_members_groups($member_id))); $member_id = 4; bump_member_group_timeout($member_id, $group_id, -10, false); $this->assertTrue(in_array($group_id, $GLOBALS['FORUM_DRIVER']->get_members_groups($member_id))); cleanup_member_timeouts(); $this->assertFalse(in_array($group_id, $GLOBALS['FORUM_DRIVER']->get_members_groups(3))); $this->assertFalse(in_array($group_id, $GLOBALS['FORUM_DRIVER']->get_members_groups(4))); }
/** * The actualiser for managing temporary usergroup memberships. * * @return tempcode The UI */ function _group_member_timeouts() { $title = get_page_title('GROUP_MEMBER_TIMEOUTS'); $group_id = post_param_integer('group_id'); if (!$GLOBALS['FORUM_DRIVER']->is_super_admin(get_member())) { $admin_groups = $GLOBALS['FORUM_DRIVER']->get_super_admin_groups(); if (in_array($group_id, $admin_groups)) { warn_exit(do_lang_tempcode('INTERNAL_ERROR')); } } $username = post_param('username'); $num_minutes = post_param_integer('num_minutes'); $prefer_for_primary_group = false; //(post_param_integer('prefer_for_primary_group',0)==1); Don't promote this bad choice $member_id = $GLOBALS['FORUM_DRIVER']->get_member_from_username($username); if (is_null($member_id)) { warn_exit(do_lang_tempcode('_USER_NO_EXIST', escape_html($username))); } require_code('group_member_timeouts'); bump_member_group_timeout($member_id, $group_id, $num_minutes, $prefer_for_primary_group); $url = build_url(array('page' => '_SELF', 'type' => 'group_member_timeouts'), '_SELF'); return redirect_screen($title, $url, do_lang_tempcode('SUCCESS')); }