Project

General

Profile

1
//: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
 
6
	global $wb,$page_id,$TEXT, $MENU, $HEADING;
7

    
8
	$return_value = '<div class="login-box">'."\n";
9
	$return_admin = ' ';
10
	// Return a system permission
11
	function get_permission($name, $type = 'system')
12
	{
13
	   	global $wb;
14
	// Append to permission type
15
		$type .= '_permissions';
16
		// Check if we have a section to check for
17
		if($name == 'start') {
18
			return true;
19
		} else {
20
			// Set system permissions var
21
			$system_permissions = $wb->get_session('SYSTEM_PERMISSIONS');
22
			// Set module permissions var
23
			$module_permissions = $wb->get_session('MODULE_PERMISSIONS');
24
			// Set template permissions var
25
			$template_permissions = $wb->get_session('TEMPLATE_PERMISSIONS');
26
			// Return true if system perm = 1
27
			if (isset($$type) && is_array($$type) && is_numeric(array_search($name, $$type))) {
28
				if($type == 'system_permissions') {
29
					return true;
30
				} else {
31
					return false;
32
				}
33
			} else {
34
				if($type == 'system_permissions') {
35
					return false;
36
				} else {
37
					return true;
38
				}
39
			}
40
		}
41
	}
42

    
43
	function get_page_permission($page, $action='admin') {
44
		if ($action!='viewing'){ $action='admin';}
45
		$action_groups=$action.'_groups';
46
		$action_users=$action.'_users';
47
		if (is_array($page)) {
48
				$groups=$page[$action_groups];
49
				$users=$page[$action_users];
50
		} else {
51
			global $database,$wb;
52
			$results = $database->query("SELECT $action_groups,$action_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page'");
53
			$result = $results->fetchRow();
54
			$groups = explode(',', str_replace('_', '', $result[$action_groups]));
55
			$users = explode(',', str_replace('_', '', $result[$action_users]));
56
		}
57

    
58
		$in_group = FALSE;
59
		foreach($wb->get_groups_id() as $cur_gid){
60
		    if (in_array($cur_gid, $groups)) {
61
		        $in_group = TRUE;
62
		    }
63
		}
64
		if((!$in_group) AND !is_numeric(array_search($wb->get_user_id(), $users))) {
65
			return false;
66
		}
67
		return true;
68
	}
69

    
70
// Get redirect
71
	$redirect_url = '';
72
    	$redirect_url = isset($redirect)&&($redirect!='') ? '<input type="hidden" name="url" value="'.$redirect.'" />'."\n" : $redirect_url;
73
	$redirect_url = (isset($_SERVER['HTTP_REFERER']) && ($redirect_url=='') ?  '<input type="hidden" name="url" value="'.$_SERVER['HTTP_REFERER'].'" />'."\n"  : $redirect_url );
74

    
75
	if ( ( FRONTEND_LOGIN == 'enabled') &&
76
		    ( VISIBILITY != 'private') &&
77
		        ( $wb->get_session('USER_ID') == '')  )
78
	{
79
		$return_value .= '<form action="'.LOGIN_URL.'" method="post">'."\n";
80
		$return_value .= $redirect_url."\n";
81
	    	$return_value .= '<fieldset>'."\n";
82
		$return_value .= '<h1>'.$TEXT['LOGIN'].'</h1>'."\n";
83
		$return_value .= '<label for="username">'.$TEXT['USERNAME'].':</label>'."\n";
84
		$return_value .= '<p><input type="text" name="username" id="username"  /></p>'."\n";
85
		$return_value .= '<label for="password">'.$TEXT['PASSWORD'].':</label>'."\n";
86
		$return_value .= '<p><input type="password" name="password" id="password"/></p>'."\n";
87
		$return_value .= '<p><input type="submit" id="submit" value="'.$TEXT['LOGIN'].'" class="dbutton" /></p>'."\n";
88
	    	$return_value .= '<ul class="login-advance">'."\n";
89
		$return_value .= '<li class="forgot"><a href="'.FORGOT_URL.'"><span>'.$TEXT['FORGOT_DETAILS'].'</span></a></li>'."\n";
90

    
91
		if (intval(FRONTEND_SIGNUP) > 0)
92
	    {
93
	        $return_value .= '<li class="sign"><a href="'.SIGNUP_URL.'">'.$TEXT['SIGNUP'].'</a></li>'."\n";
94
	    }
95
	    $return_value .= '</ul>'."\n";
96
	    $return_value .= '</fieldset>'."\n";
97
		$return_value .= '</form>'."\n";
98

    
99
	} elseif( (FRONTEND_LOGIN == 'enabled') &&
100
				(is_numeric($wb->get_session('USER_ID'))) )
101
	{
102
			$return_value .= '<form action="'.LOGOUT_URL.'" method="post" class="login-table">'."\n";
103
	        	$return_value .= '<fieldset>'."\n";
104
			$return_value .= '<h1>'.$TEXT["LOGGED_IN"].'</h1>'."\n";
105
			$return_value .= '<label>'.$TEXT['WELCOME_BACK'].', '.$wb->get_display_name().'</label>'."\n";
106
			$return_value .= '<p><input type="submit" name="submit" value="'.$MENU['LOGOUT'].'" class="dbutton" /></p>'."\n";
107
	        	$return_value .= '<ul class="logout-advance">'."\n";
108
			$return_value .= '<li class="preference"><a href="'.PREFERENCES_URL.'" title="'.$MENU['PREFERENCES'].'">'.$MENU['PREFERENCES'].'</a></li>'."\n";
109

    
110
			if ($wb->ami_group_member('1'))  //change ot the group that should get special links
111
	        {
112
			        $return_admin .= '<li class="admin"><a target="_blank" href="'.ADMIN_URL.'/index.php" title="'.$TEXT['ADMINISTRATION'].'" class="blank_target">'.$TEXT["ADMINISTRATION"].'</a></li>'."\n";
113
				//you can add more links for your users like userpage, lastchangedpages or something
114
				$return_value .= $return_admin;
115
			}
116
            //change ot the group that should get special links
117
			if( get_permission('pages_modify') && get_page_permission( PAGE_ID ) )
118
	        {
119
				$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";
120
	        }
121
	        $return_value .= '</ul>'."\n";
122
	        $return_value .= '</fieldset>'."\n";
123
			$return_value .= '</form>'."\n";
124
	}
125
	$return_value .= '</div>'."\n";
126
	return $return_value;
(2-2/15)