/** * The actualiser to absorb usergroup permissions. * * @return tempcode The UI */ function _absorb() { require_lang('security'); $to = post_param_integer('to'); $from = post_param_integer('from'); if ($to == $from) { warn_exit(do_lang_tempcode('MERGE_SAME')); } $title = get_page_title('ABSORB_PERMISSIONS'); $GLOBALS['HELPER_PANEL_PIC'] = 'pagepics/privileges'; $GLOBALS['HELPER_PANEL_TUTORIAL'] = 'tut_permissions'; // Although the code is from OCF, it is safe to use for other forum drivers require_code('ocf_groups_action'); require_code('ocf_groups_action2'); ocf_group_absorb_privileges_of($to, $from); breadcrumb_set_parents(array(array('_SELF:_SELF:absorb', do_lang_tempcode('ABSORB_PERMISSIONS')))); breadcrumb_set_self(do_lang_tempcode('DONE')); $url = build_url(array('page' => '_SELF', 'type' => 'absorb'), '_SELF'); return redirect_screen($title, $url, do_lang_tempcode('SUCCESS')); }
/** * Standard aed_module edit actualiser. * * @param ID_TEXT The entry being edited * @return ?tempcode Confirm message (NULL: continue) */ function edit_actualisation($id) { require_code('themes2'); list($group_leader, $promotion_target, $promotion_threshold) = $this->read_in_data(); if (!is_null($group_leader) && post_param_integer('confirm', 0) == 0 && !in_array(intval($id), $GLOBALS['FORUM_DRIVER']->get_members_groups($group_leader))) { require_code('templates_confirm_screen'); return form_confirm_screen(get_page_title('EDIT_GROUP'), paragraph(do_lang_tempcode('MAKE_MEMBER_GROUP_LEADER', post_param('group_leader'))), '__ed', '_ed', array('confirm' => 1)); } $was_club = $GLOBALS['FORUM_DB']->query_value('f_groups', 'g_is_private_club', array('id' => intval($id))) == 1; $rank_img = get_theme_img_code('ocf_rank_images', true, 'file', 'theme_img_code', $GLOBALS['FORUM_DB']); ocf_edit_group(intval($id), post_param('name'), post_param_integer('is_default', 0), post_param_integer('is_super_admin', 0), post_param_integer('is_super_moderator', 0), post_param('title'), $rank_img, $promotion_target, $promotion_threshold, $group_leader, post_param_integer('flood_control_submit_secs'), post_param_integer('flood_control_access_secs'), post_param_integer('max_daily_upload_mb'), post_param_integer('max_attachments_per_post'), post_param_integer('max_avatar_width', 100), post_param_integer('max_avatar_height', 100), post_param_integer('max_post_length_comcode'), post_param_integer('max_sig_length_comcode', 10000), post_param_integer('gift_points_base', 0), post_param_integer('gift_points_per_day', 0), post_param_integer('enquire_on_new_ips', 0), post_param_integer('is_presented_at_install', 0), post_param_integer('hidden', 0), post_param_integer('order'), post_param_integer('rank_image_pri_only', 0), post_param_integer('open_membership', 0), post_param_integer('is_private_club', 0)); if (addon_installed('ecommerce')) { require_lang('ecommerce'); $this->extra_donext_whatever = array(array('ecommerce', array('admin_ecommerce', array('type' => 'ad', 'group_id' => $id), '_SELF'), do_lang_tempcode('ADD_USERGROUP_SUBSCRIPTION'))); $this->extra_donext_whatever_title = do_lang_tempcode('MODULE_TRANS_NAME_subscriptions'); } if (!is_null($group_leader) && !in_array(intval($id), $GLOBALS['FORUM_DRIVER']->get_members_groups($group_leader))) { ocf_add_member_to_group($group_leader, intval($id)); } $absorb = post_param_integer('absorb', -1); if ($absorb != -1) { ocf_group_absorb_privileges_of(intval($id), $absorb); } if (post_param_integer('is_private_club', 0) == 1 && !$was_club) { $GLOBALS['SITE_DB']->query_delete('gsp', array('group_id' => intval($id))); $GLOBALS['SITE_DB']->query_delete('group_zone_access', array('group_id' => intval($id))); $GLOBALS['SITE_DB']->query_delete('group_category_access', array('group_id' => intval($id))); $GLOBALS['SITE_DB']->query_delete('group_page_access', array('group_id' => intval($id))); } return NULL; }