| 453 | | $groups = explode(".", substr($usergroups, 1)); |
| 454 | | foreach ($groups as $group) { |
| 455 | | // check if this groups has subgroups. If so, add them to the array |
| 456 | | getsubgroups($group); |
| 457 | | } |
| 458 | | // create a new user_group field with all inherited groups, and |
| 459 | | // get the inherited group rights and add them to the user own rights |
| 460 | | // everyone is always member of group 0 (public) |
| 461 | | $usergroups = ".0"; |
| 462 | | foreach ($groups as $group) { |
| 463 | | $usergroups .= ".".$group; |
| 464 | | $result = dbarray(dbquery("SELECT group_groups FROM ".$db_prefix."user_groups WHERE group_id = '".$group."'")); |
| 465 | | if (isset($result['group_groups']) && $result['group_groups'] != "") { |
| 466 | | $usergroups .= ($usergroups==""?"":".").$result['group_groups']; |
| 467 | | } |
| 468 | | } |
| 469 | | |
| 470 | | if (in_array($forumgroup, explode(".", substr($usergroups,1)))) { |
| 471 | | return true; |
| 472 | | } else { |
| 473 | | return false; |
| | 453 | // process according to the forumgroup |
| | 454 | switch ($forumgroup) { |
| | 455 | case 0: |
| | 456 | // public access |
| | 457 | return true; |
| | 458 | break; |
| | 459 | case 101: |
| | 460 | case 102: |
| | 461 | case 103: |
| | 462 | // members, administrators and webmaster fixed groups |
| | 463 | return ($userlevel >= $forumgroup); |
| | 464 | break; |
| | 465 | default: |
| | 466 | // all other groups |
| | 467 | $groups = explode(".", substr($usergroups, 1)); |
| | 468 | foreach ($groups as $group) { |
| | 469 | // check if this groups has subgroups. If so, add them to the array |
| | 470 | getsubgroups($group); |
| | 471 | } |
| | 472 | // create a new user_group field with all inherited groups, and |
| | 473 | // get the inherited group rights and add them to the user own rights |
| | 474 | // everyone is always member of group 0 (public) |
| | 475 | $usergroups = ".0"; |
| | 476 | foreach ($groups as $group) { |
| | 477 | $usergroups .= ".".$group; |
| | 478 | $result = dbarray(dbquery("SELECT group_groups FROM ".$db_prefix."user_groups WHERE group_id = '".$group."'")); |
| | 479 | if (isset($result['group_groups']) && $result['group_groups'] != "") { |
| | 480 | $usergroups .= ($usergroups==""?"":".").$result['group_groups']; |
| | 481 | } |
| | 482 | } |
| | 483 | if (in_array($forumgroup, explode(".", substr($usergroups,1)))) { |
| | 484 | return true; |
| | 485 | } else { |
| | 486 | return false; |
| | 487 | } |