Thread: Major Additions - Links and Downloads Manager
View Single Post
  #2402  
Old 09-27-2007, 04:17 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tulsa View Post
Why both of course.
This is only a partial solution - there are a couple of other changes which are needed to make it complete/clean.

Edit includes/local_links_admininclude.php. Scroll down until you find groups of lines which look like the following:

Code:
require_admin_row($seq++, 'title_data_entry', 'll_settings_title_entry', 'title_perms', 1, 1);
	require_admin_row($seq++, 'can_add_link', '6,-1', 'usergroup_check', 1);
	require_admin_row($seq++, 'can_link_files', '2,3,4,5,6,7,-1', 'usergroup_check', 1);
	require_admin_row($seq++, 'can_upload_files', '6,-1', 'usergroup_check', 1);
	require_admin_row($seq++, 'can_select_category', '2,3,4,5,6,7,-1', 'usergroup_check');
	require_admin_row($seq++, 'can_edit_link', '6,-1', 'usergroup_check');
	require_admin_row($seq++, 'can_delete_link', '6,-1', 'usergroup_check');
	require_admin_row($seq++, 'can_add_category', '6,-1', 'usergroup_check');
	require_admin_row($seq++, 'can_edit_category', '6,-1', 'usergroup_check');
...
require_admin_row($seq++, 'close_data_entry', '', 'close', 1);
Each line defines a parameter setting/permission. When there is a fifth parameter set to 1 (as on the can_add_link line), then the permission can be set at global level and at category level. Otherwise, it can only be set at global level.

So to make can_add_category and can_edit_category permissions avaiable on a per-category basis, simply add ", 1 at the end of the lines:

Code:
	require_admin_row($seq++, 'can_add_category', '6,-1', 'usergroup_check', 1);
	require_admin_row($seq++, 'can_edit_category', '6,-1', 'usergroup_check', 1);
Save, then (important) reinstall the LDM product installer via the vb admincp.

Then, these permissions become available on the Add/Edit Category forms, on the third tab (User Group Permissions). If you deny the permission globally and enable it in one of your categories, then the relevant user group can only create subcategories in that category.

As I said, this is not a complete patch - You will find that the 'add category' form always includes a parent category selection box, allowing people to place the new subcategory somewhere else in the category hierarchy. This is probably not what you want. For some reason, I had overlooked to apply the *can_select_category* permission to category creation. I will fix this in 2.2.8.

My answer about users always being able to edit their own categories was also not completely accurate. There's another bug so that the relevant Edit Category menu item does not get displayed even though the user actually has permission to do the edit. This will also be fixed in 2.2.8.

So you may prefer to wait.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01114 seconds
  • Memory Usage 1,771KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete