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)));
 }
Example #2
0
 /**
  * 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'));
 }