View Single Post
  #8  
Old 03-15-2005, 02:08 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well if you combine 2 (or more) NOT '!' conditions they will get related.

Example of what you want:
1. If you are not the poster AND not have rights to edit (this will mean that if you are the poster, but don't have the right to edit (your own post) you still can edit):
PHP Code:
(($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) 
Let's see what can happen:
- I am the poster, and i have rights to edit. The above is NOT true, so no error msg.
- I am the poster, and i have NO rights to edit. The above is NOT true (the first part of the condition is false), so no error msg.
- I am NOT the poster, and i have rights to edit. The above is NOT true, so no error msg.
- I am the NOT poster, and i have NO rights to edit. The above is true, so i get a no permission page.

Now the second part:
PHP Code:
(!$grps_permissions['groupsmoderater']) 
I guess what we want here is that a moderator (spelling mistake in the permission??) can always edit, no matter if he made the post himself. If not combined with other conditions this would be ok. But now let's see what happens if we combine:

PHP Code:
(($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) OR (!$grps_permissions['groupsmoderater'])) 
Let's call the 3 conditions here 'post_user != cur_user', 'C2' and 'C3', so we could write:
PHP Code:
((post_user != cur_user AND !C2) OR (!C3)) 
We can have the following now:
- User is same, C2 is TRUE (making the test false!!!), and C3 is FALSE(he is not a moderator, making this test true. So we have here a user, who made this post, have edit rights and is not a moderator, this would result in:
1. post_user != cur_user......FALSE (the user is the same)
2. !C2....FALSE (the user has permission to edit)
3. !C3....TRUE (the user is not a moderator)
this will result in:
Code:
((FALSE AND FALSE) OR (TRUE))
this equals to:
Code:
(FALSE OR TRUE)
this equals to:
Code:
TRUE
what you probably need it the following:
PHP Code:
( !($postinfo['userid'] == $bbuserinfo[userid] AND $grps_permissions['groupspostedit']) AND (!$grps_permissions['groupsmoderater'])) 
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01086 seconds
  • Memory Usage 1,781KB
  • 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
  • (3)bbcode_code
  • (5)bbcode_php
  • (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