Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 03-15-2005, 12:17 PM
sabret00the's Avatar
sabret00the sabret00the is offline
 
Join Date: Jan 2003
Location: London
Posts: 5,268
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default conditional won't work together but work's split up?

PHP Code:
if ($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) OR (!$grps_permissions['groupsmoderater']))
{
    
print_no_permission();

i can't figure out what's wrong with it
Reply With Quote
  #2  
Old 03-15-2005, 12:38 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Should that OR be an AND?
Reply With Quote
  #3  
Old 03-15-2005, 12:50 PM
neocorteqz's Avatar
neocorteqz neocorteqz is offline
 
Join Date: May 2002
Location: Barefoot Bay Fl
Posts: 473
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MarcoH64
Should that OR be an AND?
I thought it was just OR, but then again I'm still learning php.

and is he not missing a ( at the beginning.

should be

PHP Code:
if (($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) OR (!$grps_permissions['groupsmoderater']))
{
    
print_no_permission();

I'm sure it was just a typo.
Reply With Quote
  #4  
Old 03-15-2005, 01:15 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

YEs you are right, he is also missing a leading (. He would get a syntax error on that.
Reply With Quote
  #5  
Old 03-15-2005, 01:17 PM
sabret00the's Avatar
sabret00the sabret00the is offline
 
Join Date: Jan 2003
Location: London
Posts: 5,268
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

yeah that was a typo from where i reconstructed the two conditionals to make em once

but php
PHP Code:
if ($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) 
works

and
PHP Code:
if (!$grps_permissions['groupsmoderater']) 
works but when you combine em

PHP Code:
if (($postinfo['userid'] != $bbuserinfo[userid] AND !$grps_permissions['groupspostedit']) OR (!$grps_permissions['groupsmoderater']))
{
    
print_no_permission();

don't it just shows the no_permission screen
Reply With Quote
  #6  
Old 03-15-2005, 01:27 PM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Like i said......change the OR to AND
Reply With Quote
  #7  
Old 03-15-2005, 01:47 PM
sabret00the's Avatar
sabret00the sabret00the is offline
 
Join Date: Jan 2003
Location: London
Posts: 5,268
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

the OR is supposed to be an AND though

basically if the userid is not the same as your userid and you don't have the usergroup permission anyway then show no permission and the second bit is if you're not a moderator then show no permission, so both are independant.
Reply With Quote
  #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
  #9  
Old 03-15-2005, 02:28 PM
sabret00the's Avatar
sabret00the sabret00the is offline
 
Join Date: Jan 2003
Location: London
Posts: 5,268
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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. correct and working as intended
- 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. incorrect should see error message
- I am NOT the poster, and i have rights to edit. The above is NOT true, so no error msg. correct and working as intended
- I am the NOT poster, and i have NO rights to edit. The above is true, so i get a no permission page. correct and working as intended

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: correct so far

PHP Code:
( !($postinfo['userid'] == $bbuserinfo[userid] AND $grps_permissions['groupspostedit']) AND (!$grps_permissions['groupsmoderater'])) 
here i'm lost because, a user should be able to edit their own posts without being a moderator, however a moderator should be able to edit any post without being the original poster, but your code says they can't be a moderator?

so bascially let me try and do this in conditionals to try and explain myself

PHP Code:
if ($postinfo[userid == $bbuserinfo[userid])
{
$allow_edit TRUE;
}

if (
$grps_permissions[groupspostedit] == TRUE)
{
$allow_edit2 TRUE;
}

if (!
$allow_edit and !$allow_edit2)
{
print_no_permission;
}
else
{
echo 
"edit screen";

but because we want mods to be able to edit posts two, we have to make sure you're not a moderator so

PHP Code:
if ((!$allow_edit and !$allow_edit2) OR ($user_is_moderator == FALSE)
{
print_no_permission;
}
else
{
echo 
"edit screen";

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

What my code does is:
If they are NOT (poster AND have edit perms) AND are NOT a moderator: Error message

Edit wrong!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:12 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05201 seconds
  • Memory Usage 2,289KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_code
  • (13)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete