7004cc32 |
1 | <?php |
ea5f4b8e |
2 | /** |
fb579f0b |
3 | * Administrator plugin - Authentication routines |
4 | * |
5 | * This function tell other modules what users have access |
6 | * to the plugin. |
7 | * |
0df03ce7 |
8 | * @version $Id$ |
fb579f0b |
9 | * @author Philippe Mingo |
6c84ba1e |
10 | * @copyright (c) 1999-2005 The SquirrelMail Project Team |
fb579f0b |
11 | * @license http://opensource.org/licenses/gpl-license.php GNU Public License |
ea5f4b8e |
12 | * @package plugins |
13 | * @subpackage administrator |
2d977280 |
14 | */ |
7004cc32 |
15 | |
ea5f4b8e |
16 | /** |
0df03ce7 |
17 | * Check if user has access to administrative functions |
18 | * |
19 | * @return boolean |
0df03ce7 |
20 | */ |
52a6105d |
21 | function adm_check_user() { |
4c80d233 |
22 | global $PHP_SELF, $plugins; |
4cd8ae7d |
23 | require_once(SM_PATH . 'functions/global.php'); |
91e0dccc |
24 | |
4c80d233 |
25 | /* fail if the plugin is not enabled */ |
26 | if ( !in_array('administrator', $plugins) ) { |
27 | return FALSE; |
28 | } |
29 | |
4cd8ae7d |
30 | if ( !sqgetGlobalVar('username',$username,SQ_SESSION) ) { |
31 | $username = ''; |
32 | } |
33 | |
a28a56da |
34 | /* This needs to be first, for all non_options pages */ |
52a6105d |
35 | if (strpos('options.php', $PHP_SELF)) { |
71bf4974 |
36 | $auth = FALSE; |
52a6105d |
37 | } else if (file_exists(SM_PATH . 'plugins/administrator/admins')) { |
38 | $auths = file(SM_PATH . 'plugins/administrator/admins'); |
0a577181 |
39 | array_walk($auths, 'adm_array_trim'); |
daa192a8 |
40 | $auth = in_array($username, $auths); |
52a6105d |
41 | } else if (file_exists(SM_PATH . 'config/admins')) { |
42 | $auths = file(SM_PATH . 'config/admins'); |
0a577181 |
43 | array_walk($auths, 'adm_array_trim'); |
daa192a8 |
44 | $auth = in_array($username, $auths); |
ec4584f9 |
45 | } else if (($adm_id = fileowner(SM_PATH . 'config/config.php')) && |
a9ccc40c |
46 | function_exists('posix_getpwuid')) { |
7004cc32 |
47 | $adm = posix_getpwuid( $adm_id ); |
52a6105d |
48 | $auth = ($username == $adm['name']); |
49 | } else { |
a82293f6 |
50 | $auth = FALSE; |
51 | } |
7004cc32 |
52 | |
52a6105d |
53 | return ($auth); |
7004cc32 |
54 | } |
55 | |
0a577181 |
56 | /** |
57 | * Removes whitespace from array values |
58 | * @param string $value array value that has to be trimmed |
59 | * @param string $key array key |
63ed9ceb |
60 | * @since 1.5.1 and 1.4.5 |
61 | * @access private |
0a577181 |
62 | */ |
63 | function adm_array_trim(&$value,$key) { |
64 | $value=trim($value); |
65 | } |
75e32d38 |
66 | ?> |