-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
116 lines (104 loc) · 4.4 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/*
* Copyright (c) 2004 Klarälvdalens Datakonsult AB
* Copyright (c) 2003 Tassilo Erlewein <tassilo.erlewein@erfrakon.de>
* Copyright (c) 2003 Martin Konold <martin.konold@erfrakon.de>
* Copyright (c) 2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You can view the GNU General Public License, online, at the GNU
* Project's homepage; see <http://www.gnu.org/licenses/gpl.html>.
*/
require_once('Skolab/Admin/include/mysmarty.php');
require_once('Skolab/Admin/include/headers.php');
require_once('Skolab/Admin/include/locale.php');
require_once('Skolab/Admin/include/authenticate.php');
$errors = array();
// *** Authentication etc. ***
$sidx = 'sf';
if( $auth->group() != 'maintainer' && $auth->group() != 'admin' && $auth->group() != 'domain-maintainer' ) {
debug("auth->group=".$auth->group());
array_push($errors, _("Error: You don't have Permissions to access this Menu"));
}
require_once('Skolab/Admin/include/menu.php');
// *** Submenu for current page ***
$menuitems[$sidx]['selected'] = 'selected';
// *** Extract data from LDAP ***
function prepare_domain_filter_component($str) {
return '(cn=*@'.SkolabLDAP::escape($str).')';
}
// Get all entries & dynamically split the letters with growing entries
$entries = array();
if( !$errors ) {
if (isset($_SESSION['base_dn'])) $base_dn = $_SESSION['base_dn'];
else $base_dn = 'k=kolab';
if( $group == 'domain-maintainer' ) {
$domainfilter = '(|'.join('', array_map( 'prepare_domain_filter_component',
$ldap->domainsForMaintainerDn($auth->dn()))).')';
} else {
$domainfilter = '(cn=*)';
}
debug("domainfilter=$domainfilter");
$filter = "(&$domainfilter(objectclass=kolabSharedFolder))";
$result = ldap_search($ldap->connection, $base_dn, $filter);
if( $result ) {
$count = ldap_count_entries($ldap->connection, $result);
$title = sprintf(_("Manage Shared Folders (%d Folders)"), $count);
$template = 'sflistall.tpl';
ldap_sort($ldap->connection,$result,'cn');
$entry = ldap_first_entry($ldap->connection, $result);
while( $entry ) {
$attrs = ldap_get_attributes($ldap->connection, $entry);
$dn = ldap_get_dn($ldap->connection,$entry);
$deleted = array_key_exists('kolabDeleteflag',$attrs)?$attrs['kolabDeleteflag'][0]:"FALSE";
$cn = $attrs['cn'][0];
$kolabhomeserver = $attrs['kolabHomeServer'][0];
$folderTypeMap = array ( '' => _('Unspecified'),
'mail' => _('Mails'),
'task' => _('Tasks'),
'journal' => _('Journals'),
'event' => _('Events'),
'contact' => _('Contacts'),
'note' => _('Notes'));
if( in_array('kolabFolderType',$attrs) ) $folderType = $folderTypeMap[$attrs['kolabFolderType'][0]];
else $folderType = $folderTypeMap[''];
$entries[] = array( 'dn' => $dn,
'cn' => $cn,
'kolabhomeserver' => $kolabhomeserver,
'foldertype' => $folderType,
'deleted' => $deleted );
$entry = ldap_next_entry( $ldap->connection,$entry );
}
}
}
// *** Insert into template and output ***
$smarty = new MySmarty();
$smarty->assign( 'errors', $errors );
$smarty->assign( 'uid', $auth->uid() );
$smarty->assign( 'group', $auth->group() );
$smarty->assign( 'page_title', $menuitems[$sidx]['title'] );
$smarty->assign( 'entries', $entries );
$smarty->assign( 'menuitems', $menuitems );
$smarty->assign( 'submenuitems',
array_key_exists('submenu',
$menuitems[$sidx])?$menuitems[$sidx]['submenu']:array() );
$smarty->assign( 'maincontent', $template );
$smarty->display('page.tpl');
/*
Local variables:
mode: php
indent-tabs-mode: t
tab-width: 4
buffer-file-coding-system: utf-8
End:
*/
?>