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