} $id = vB::getDbAssertor()->assertQuery('vBForum:permission', $params); } } break; case 'deny': $usergroupcache =& vB::getDatastore()->getValue('usergroupcache'); foreach ($usergroupcache as $group) { /*insert query*/ vB::getDbAssertor()->assertQuery('replacePermissions', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_STORED, 'nodeid' => $vbulletin->GPC['nodeid'], 'usergroupid' => $group['usergroupid'], 'forumpermissions' => 0, 'moderatorpermissions' => 0, 'createpermissions' => 0, 'forumpermissions2' => 0, 'edit_time' => 2, 'require_moderate' => 1, 'maxtags' => 0, 'maxstartertags' => 0, 'maxothertags' => 0, 'maxattachments' => 0, 'maxchannels' => 0, 'channeliconmaxsize' => 0)); } break; default: print_stop_message2('invalid_quick_set_action'); } build_channel_permissions(); vB_Cache::instance()->event('perms_changed'); vB::getUserContext()->rebuildGroupAccess(); print_stop_message2('saved_channel_permissions_successfully', 'forumpermission', array('do' => 'modify', 'n' => $vbulletin->GPC['nodeid'])); } // ###################### Start fpgetstyle ####################### function fetch_forumpermission_style($permissions) { global $vbulletin; if (!($permissions & $vbulletin->bf_ugp_forumpermissions['canview'])) { return " style=\"list-style-type:circle;\""; } else { return ''; } } // ###################### Start modify #######################
/** * Delete an usergroup * * @param int $usergroupid Usergroup ID to be deleted * @return void */ public function delete($usergroupid) { $this->checkHasAdminPermission('canadminpermissions'); $db = vB::getDbAssertor(); // update users who are in this usergroup to be in the registered usergroup $db->assertQuery('user', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'usergroupid' => 2, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('user', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'displaygroupid' => 0, vB_dB_Query::CONDITIONS_KEY => array('displaygroupid' => $usergroupid))); $db->assertQuery('user', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'infractiongroupid' => 0, vB_dB_Query::CONDITIONS_KEY => array('infractiongroupid' => $usergroupid))); $db->assertQuery('useractivation', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'usergroupid' => 2, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBForum:subscription', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'nusergroupid' => -1, vB_dB_Query::CONDITIONS_KEY => array('nusergroupid' => $usergroupid))); $db->assertQuery('vBForum:subscriptionlog', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, 'pusergroupid' => -1, vB_dB_Query::CONDITIONS_KEY => array('pusergroupid' => $usergroupid))); /** @todo rewise this query - it's currently invalid **/ // $db->assertQuery('vBForum:subscriptionlog', array( // vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_UPDATE, // 'displaygroupid' => 0, // vB_dB_Query::CONDITIONS_KEY => array( // 'displaygroupid' => $usergroupid // ), // )); // now get on with deleting stuff... $db->assertQuery('usergroup', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBForum:forumpermission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBForum:permission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('groupid' => $usergroupid))); vB_Library::instance('userrank')->deleteForUsergroup($usergroupid); $db->assertQuery('vBForum:usergrouprequest', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('userpromotion', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('deleteUserPromotion', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_STORED, 'usergroupid' => $usergroupid)); $db->assertQuery('vBForum:imagecategorypermission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBForum:attachmentpermission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBForum:prefixpermission', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('vBforum:usergroupleader', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('infractiongroup', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('infractiongroup', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('orusergroupid' => $usergroupid))); $db->assertQuery('infractionban', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('usergroupid' => $usergroupid))); $db->assertQuery('infractionban', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_DELETE, vB_dB_Query::CONDITIONS_KEY => array('banusergroupid' => $usergroupid))); require_once DIR . '/includes/adminfunctions.php'; build_channel_permissions(); require_once DIR . '/includes/adminfunctions_attachment.php'; build_attachment_permissions(); // remove this group from users who have this group as a membergroup $updateusers = array(); $casesql = ''; $users = $db->getRows('usergroup_fetchmemberstoremove', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_STORED, 'usergroupid' => $usergroupid)); if (count($users)) { $db->assertQuery('updateMemberForDeletedUsergroup', array(vB_dB_Query::TYPE_KEY => vB_dB_Query::QUERY_METHOD, 'users' => $users, 'usergroupid' => $usergroupid)); } vB::getUserContext()->rebuildGroupAccess(); }