steffen: server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist index.php, 1.10, 1.11 list.php, 1.16, 1.17
cvs at intevation.de
cvs at intevation.de
Thu Jul 7 12:47:02 CEST 2005
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist
In directory doto:/tmp/cvs-serv3970/kolab-webadmin/www/admin/distributionlist
Modified Files:
index.php list.php
Log Message:
per-domain distlists
Index: index.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist/index.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- index.php 6 Jul 2005 13:55:37 -0000 1.10
+++ index.php 7 Jul 2005 10:47:00 -0000 1.11
@@ -30,7 +30,8 @@
/**** Authentication etc. ***/
$sidx = 'distlist';
-if( $auth->group() != 'maintainer' && $auth->group() != 'admin') {
+$group = $auth->group();
+if( $group != 'maintainer' && $group != 'admin' && $group != 'domain-maintainer' ) {
array_push($errors, _("Error: You don't have Permissions to access this Menu") );
}
@@ -45,7 +46,7 @@
if( !$errors ) {
if (isset($_SESSION['base_dn'])) $base_dn = $_SESSION['base_dn'];
else $base_dn = 'k=kolab';
- $filter = "(&(cn=*)(objectclass=kolabGroupOfNames))";
+ $filter = "(&(!(cn=domans))(objectclass=kolabGroupOfNames))";
$result = ldap_search($ldap->connection, $base_dn, $filter);
if( $result ) {
$count = ldap_count_entries($ldap->connection, $result);
@@ -57,7 +58,8 @@
$attrs = ldap_get_attributes($ldap->connection, $entry);
$dn = ldap_get_dn($ldap->connection,$entry);
$cn = $attrs['cn'][0];
- if( $cn != 'admin' && $cn != 'maintainer' && $cn != 'domain-maintainer' ) {
+ if( $cn != 'admin' && $cn != 'maintainer' && $cn != 'domain-maintainer'
+ && !preg_match('/.*,cn=domains,cn=internal,'.$_SESSION['base_dn'].'/', $dn ) ) {
$kolabdeleteflag = $attrs['kolabdeleteflag'][0];
$kolabhomeserver = _('not yet implemented');
$internal = (strpos($dn,"cn=internal")!==false);
Index: list.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist/list.php,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- list.php 27 Apr 2005 19:47:49 -0000 1.16
+++ list.php 7 Jul 2005 10:47:00 -0000 1.17
@@ -32,7 +32,8 @@
$contenttemplate = 'formcontainer.tpl';
$valid_actions = array('firstsave','save','modify','create','delete','kill');
-if( $auth->group() != 'maintainer' && $auth->group() != 'admin') {
+$group = $auth->group();
+if( $group != 'maintainer' && $group != 'admin' && $group != 'domain-maintainer' ) {
array_push($errors, _("Error: You don't have Permissions to access this Menu") );
}
@@ -52,24 +53,13 @@
return '';
}
-function mail_domain()
-{
- global $ldap;
- $kolab = $ldap->read( 'k=kolab,'.$_SESSION['base_dn'] );
- return $kolab['postfix-mydomain'][0];
-}
-
function checkuniquemail( $form, $key, $value ) {
global $ldap;
if( $key == 'cn' ) {
// Here we have the required hack again:
// email address is <value of cn>@default-domain
- $kolab = $ldap->read( 'k=kolab,'.$_SESSION['base_dn'] );
- for( $i = 0; $i < $kolab['postfix-mydomain']['count']; $i++ ) {
- $domain = $kolab['postfix-mydomain'][$i];
- if( $ldap->countMail( $_SESSION['base_dn'], $value.'@'.$domain ) > 0 ) {
- return _('User or distribution list with this email address already exists');
- }
+ if( $ldap->countMail( $_SESSION['base_dn'], $value ) > 0 ) {
+ return _('User or distribution list with this email address already exists');
}
}
return '';
@@ -118,10 +108,11 @@
$dn="";
if (!empty($_REQUEST['dn'])) $dn = trim($_REQUEST['dn']);
-if (!$errors && $auth->group() != 'maintainer' && $auth->group() != 'admin')
- array_push($errors, _("Error: You don't have the required Permissions") );
-
$entries = array( 'cn' => array( 'name' => _('List Name'),
+ 'type' => 'email',
+ 'domains' => ($auth->group()=='domain-maintainer')
+ ?$ldap->domainsForMaintainerDn($auth->dn())
+ :$ldap->domains(),
'validation' => 'notempty',
'comment' => _('Required') ),
'members' => array( 'name' => _('Members'),
@@ -170,11 +161,11 @@
if (!$visible) $dl_root = "cn=internal,".$dl_root;
$ldap_object = array('objectClass' => 'kolabGroupOfNames');
- $cn = strtolower(trim($_POST['cn']));
+ $cn = strtolower(trim( trim($_POST['user_cn']).'@'.$_POST['domain_cn']));
// Keep cn and mail in sync
$ldap_object['cn'] = $cn;
- $ldap_object['mail'] = $cn.'@'.mail_domain();
+ $ldap_object['mail'] = $cn;
$ldap_object['member'] = array();
$lst = array_unique( array_filter( array_map( 'trim', preg_split( '/\n/', trim($_POST['members']) ) ), 'strlen') );
More information about the commits
mailing list