| 1 | 2 | Manuela | //:Puts a Login / Logout box on your page.
 | 
      
        | 2 |  |  | //:Use: [[LoginBox?redirect=url]]
 | 
      
        | 3 |  |  | //:Absolute or relative url possible
 | 
      
        | 4 |  |  | //:Remember to enable frontend login in your website settings!!
 | 
      
        | 5 |  |  | global $database,$wb, $TEXT, $MENU, $HEADING;
 | 
      
        | 6 |  |  | $return_value = '<div class="login-box">'."\n";
 | 
      
        | 7 |  |  | $return_admin = ' ';
 | 
      
        | 8 |  |  | // Return a system permission
 | 
      
        | 9 |  |  | $get_permission = function ($name, $type = 'system') use ( $wb )
 | 
      
        | 10 |  |  | {
 | 
      
        | 11 |  |  | // Append to permission type
 | 
      
        | 12 |  |  | $type .= '_permissions';
 | 
      
        | 13 |  |  | // Check if we have a section to check for
 | 
      
        | 14 |  |  | if($name == 'start') {
 | 
      
        | 15 |  |  | return true;
 | 
      
        | 16 |  |  | } else {
 | 
      
        | 17 |  |  | // Set system permissions var
 | 
      
        | 18 |  |  | $system_permissions = $wb->get_session('SYSTEM_PERMISSIONS');
 | 
      
        | 19 |  |  | // Set module permissions var
 | 
      
        | 20 |  |  | $module_permissions = $wb->get_session('MODULE_PERMISSIONS');
 | 
      
        | 21 |  |  | // Set template permissions var
 | 
      
        | 22 |  |  | $template_permissions = $wb->get_session('TEMPLATE_PERMISSIONS');
 | 
      
        | 23 |  |  | // Return true if system perm = 1
 | 
      
        | 24 |  |  | if (isset($$type) && is_array($$type) && is_numeric(array_search($name, $$type))) {
 | 
      
        | 25 |  |  | if($type == 'system_permissions') {
 | 
      
        | 26 |  |  | return true;
 | 
      
        | 27 |  |  | } else {
 | 
      
        | 28 |  |  | return false;
 | 
      
        | 29 |  |  | }
 | 
      
        | 30 |  |  | } else {
 | 
      
        | 31 |  |  | if($type == 'system_permissions') {
 | 
      
        | 32 |  |  | return false;
 | 
      
        | 33 |  |  | } else {
 | 
      
        | 34 |  |  | return true;
 | 
      
        | 35 |  |  | }
 | 
      
        | 36 |  |  | }
 | 
      
        | 37 |  |  | }
 | 
      
        | 38 |  |  | };
 | 
      
        | 39 |  |  | $get_page_permission = function ($page, $action='admin') use ( $database, $wb )
 | 
      
        | 40 |  |  | {
 | 
      
        | 41 |  |  | if ($action!='viewing'){ $action='admin';}
 | 
      
        | 42 |  |  | $action_groups = $action.'_groups';
 | 
      
        | 43 |  |  | $action_users  = $action.'_users';
 | 
      
        | 44 |  |  | if (is_array($page)) {
 | 
      
        | 45 |  |  | $groups = $page[$action_groups];
 | 
      
        | 46 |  |  | $users  = $page[$action_users];
 | 
      
        | 47 |  |  | } else {
 | 
      
        | 48 |  |  | $sql  = 'SELECT '.$action_groups.','.$action_users.' FROM '.TABLE_PREFIX.'pages '
 | 
      
        | 49 |  |  | . 'WHERE page_id = \''.$page.'\'';
 | 
      
        | 50 |  |  | if($oResults = $database->query( $sql )){
 | 
      
        | 51 |  |  | $aResult  = $oResults->fetchRow( MYSQLI_ASSOC );
 | 
      
        | 52 |  |  | $groups  = explode(',', str_replace('_', '', $aResult[$action_groups]));
 | 
      
        | 53 |  |  | $users   = explode(',', str_replace('_', '', $aResult[$action_users]));
 | 
      
        | 54 |  |  | }
 | 
      
        | 55 |  |  | }
 | 
      
        | 56 |  |  | $in_group = false;
 | 
      
        | 57 |  |  | foreach($wb->get_groups_id() as $cur_gid){
 | 
      
        | 58 |  |  | if (in_array( $cur_gid, $groups )) {
 | 
      
        | 59 |  |  | $in_group = true;
 | 
      
        | 60 |  |  | }
 | 
      
        | 61 |  |  | }
 | 
      
        | 62 |  |  | if( !$in_group && !is_numeric(array_search( $wb->get_user_id(), $users )) ) {
 | 
      
        | 63 |  |  | return false;
 | 
      
        | 64 |  |  | }
 | 
      
        | 65 |  |  | return true;
 | 
      
        | 66 |  |  | };
 | 
      
        | 67 |  |  | // Get redirect
 | 
      
        | 68 |  |  | $redirect_url = ((isset($_SESSION['HTTP_REFERER']) && $_SESSION['HTTP_REFERER'] != '') ? $_SESSION['HTTP_REFERER'] : WB_URL );
 | 
      
        | 69 |  |  | $redirect_url = ( isset($redirect) && ($redirect!='') ? $redirect : $redirect_url);
 | 
      
        | 70 |  |  | if ( ( FRONTEND_LOGIN == 'enabled') && ( VISIBILITY != 'private') && ( $wb->get_session('USER_ID') == '')  )
 | 
      
        | 71 |  |  | {
 | 
      
        | 72 |  |  | $return_value .= '<form action="'.LOGIN_URL.'" method="post">'."\n";
 | 
      
        | 73 |  |  | $return_value .= '<input type="hidden" name="redirect" value="'.$redirect_url.'" />'."\n";
 | 
      
        | 74 |  |  | $return_value .= '<fieldset>'."\n";
 | 
      
        | 75 |  |  | $return_value .= '<h1>'.$TEXT['LOGIN'].'</h1>'."\n";
 | 
      
        | 76 |  |  | $return_value .= '<label for="username">'.$TEXT['USERNAME'].':</label>'."\n";
 | 
      
        | 77 |  |  | $return_value .= '<p><input type="text" name="username" id="username"  /></p>'."\n";
 | 
      
        | 78 |  |  | $return_value .= '<label for="password">'.$TEXT['PASSWORD'].':</label>'."\n";
 | 
      
        | 79 |  |  | $return_value .= '<p><input type="password" name="password" id="password"/></p>'."\n";
 | 
      
        | 80 |  |  | $return_value .= '<p><input type="submit" id="submit" value="'.$TEXT['LOGIN'].'" class="dbutton" /></p>'."\n";
 | 
      
        | 81 |  |  | $return_value .= '<ul class="login-advance">'."\n";
 | 
      
        | 82 |  |  | $return_value .= '<li class="forgot"><a href="'.FORGOT_URL.'"><span>'.$TEXT['FORGOT_DETAILS'].'</span></a></li>'."\n";
 | 
      
        | 83 |  |  | if (intval(FRONTEND_SIGNUP) > 0)
 | 
      
        | 84 |  |  | {
 | 
      
        | 85 |  |  | $return_value .= '<li class="sign"><a href="'.SIGNUP_URL.'">'.$TEXT['SIGNUP'].'</a></li>'."\n";
 | 
      
        | 86 |  |  | }
 | 
      
        | 87 |  |  | $return_value .= '</ul>'."\n";
 | 
      
        | 88 |  |  | $return_value .= '</fieldset>'."\n";
 | 
      
        | 89 |  |  | $return_value .= '</form>'."\n";
 | 
      
        | 90 |  |  | } elseif( (FRONTEND_LOGIN == 'enabled') && (is_numeric($wb->get_session('USER_ID'))) )
 | 
      
        | 91 |  |  | {
 | 
      
        | 92 |  |  | $return_value .= '<form action="'.LOGOUT_URL.'" method="post" class="login-table">'."\n";
 | 
      
        | 93 |  |  | $return_value .= '<input type="hidden" name="redirect" value="'.$redirect_url.'" />'."\n";
 | 
      
        | 94 |  |  | $return_value .= '<fieldset>'."\n";
 | 
      
        | 95 |  |  | $return_value .= '<h1>'.$TEXT["LOGGED_IN"].'</h1>'."\n";
 | 
      
        | 96 |  |  | $return_value .= '<label>'.$TEXT['WELCOME_BACK'].', '.$wb->get_display_name().'</label>'."\n";
 | 
      
        | 97 |  |  | $return_value .= '<p><input type="submit" name="submit" value="'.$MENU['LOGOUT'].'" class="dbutton" /></p>'."\n";
 | 
      
        | 98 |  |  | $return_value .= '<ul class="logout-advance">'."\n";
 | 
      
        | 99 |  |  | $return_value .= '<li class="preference"><a href="'.PREFERENCES_URL.'" title="'.$MENU['PREFERENCES'].'">'.$MENU['PREFERENCES'].'</a></li>'."\n";
 | 
      
        | 100 |  |  | if ($wb->ami_group_member('1'))  //change ot the group that should get special links
 | 
      
        | 101 |  |  | {
 | 
      
        | 102 |  |  | $return_admin .= '<li class="admin"><a target="_blank" href="'.ADMIN_URL.'/index.php" title="'.$TEXT['ADMINISTRATION'].'" class="blank_target">'.$TEXT["ADMINISTRATION"].'</a></li>'."\n";
 | 
      
        | 103 |  |  | //you can add more links for your users like userpage, lastchangedpages or something
 | 
      
        | 104 |  |  | $return_value .= $return_admin;
 | 
      
        | 105 |  |  | }
 | 
      
        | 106 |  |  | //change ot the group that should get special links
 | 
      
        | 107 |  |  | if( $get_permission('pages_modify') && $get_page_permission( PAGE_ID ) )
 | 
      
        | 108 |  |  | {
 | 
      
        | 109 |  |  | $return_value .= '<li class="modify"><a target="_blank" href="'.ADMIN_URL.'/pages/modify.php?page_id='.PAGE_ID.'" title="'.$HEADING['MODIFY_PAGE'].'" class="blank_target">'.$HEADING['MODIFY_PAGE'].'</a></li>'."\n";
 | 
      
        | 110 |  |  | }
 | 
      
        | 111 |  |  | $return_value .= '</ul>'."\n";
 | 
      
        | 112 |  |  | $return_value .= '</fieldset>'."\n";
 | 
      
        | 113 |  |  | $return_value .= '</form>'."\n";
 | 
      
        | 114 |  |  | }
 | 
      
        | 115 |  |  | $return_value .= '</div>'."\n";
 | 
      
        | 116 |  |  | return $return_value;
 |