steffen: server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist list.php, 1.3, 1.4
cvs at intevation.de
cvs at intevation.de
Fri Jun 4 12:46:49 CEST 2004
Author: steffen
Update of /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist
In directory doto:/tmp/cvs-serv2882/kolab-webadmin/www/admin/distributionlist
Modified Files:
list.php
Log Message:
bugfixes + availability of dist. lists
Index: list.php
===================================================================
RCS file: /kolabrepository/server/kolab-webadmin/kolab-webadmin/www/admin/distributionlist/list.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- list.php 28 May 2004 15:49:52 -0000 1.3
+++ list.php 4 Jun 2004 10:46:47 -0000 1.4
@@ -44,6 +44,11 @@
return '';
}
+function domain_dn()
+{
+ return $_SESSION['base_dn'];
+}
+
function fill_form_for_modify( &$form, &$ldap_object ) {
if (is_array($ldap_object['cn'])) $cn = $ldap_object['cn'][0];
else $cn = $ldap_object['cn'];
@@ -53,6 +58,12 @@
$m = $ldap_object['member'];
unset( $m['count'] );
$form->entries['members']['value'] = join("\r\n", $m);
+ $internaldn = 'cn=internal,'.domain_dn();
+ if( substr( $dn, strlen($dn)-strlen( $internaldn ) ) === $internaldn ) {
+ $form->entries['visible']['value'] = false;
+ } else {
+ $form->entries['visible']['value'] = true;
+ }
}
@@ -79,6 +90,10 @@
'comment' => 'One DN per line',
'validation' => 'checkemaillist'));
+$entries['visible'] = array( 'name' => 'Public',
+ 'type' => 'checkbox',
+ 'value' => true,
+ 'comment' => 'Check here to make this distribution list available to authticated users only');
$entries['action'] = array( 'name' => 'action',
'type' => 'hidden' );
@@ -108,7 +123,13 @@
$form->setValues();
$content = $form->outputForm();
} else {
- $sf_root = $_SESSION['base_dn'];
+ $dl_root = domain_dn();
+
+ if (!empty($_POST['visible']) && $_POST['visible'] == "on")
+ $visible = true;
+ else $visible = false;
+ if (!$visible) $dl_root = "cn=internal,".$dl_root;
+
$ldap_object = array('objectClass' => 'groupOfNames');
$cn = trim($_POST['cn']);
$ldap_object['cn'] = $cn;
@@ -122,7 +143,7 @@
if ($action == "save") {
if (!$errors) {
- if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$sf_root;
+ if (!empty($ldap_object['cn'])) $newdn = "cn=".$ldap_object['cn'].",".$dl_root;
else $newdn = $dn;
if (strcmp($dn,$newdn) != 0) {
if (($result=ldap_read($ldap->connection,$dn,"(objectclass=*)")) &&
@@ -147,7 +168,7 @@
// firstsave
if (!$errors) {
if( !$ldap_object['member'] ) unset($ldap_object['member']);
- $dn = "cn=".$ldap_object['cn'].",".$sf_root;
+ $dn = "cn=".$ldap_object['cn'].",".$dl_root;
if ($dn && !ldap_add($ldap->connection, $dn, $ldap_object)) {
array_push($errors, "LDAP Error: Could not add object ".$dn." ".ldap_error($ldap->connection));
debug("dn is $dn");
@@ -164,8 +185,8 @@
$cn = $ldap_object['cn'];
$newcn = md5sum( $dn.$cn );
$ldap_object['cn'] = $newcn;
- $ldap_object['dn'] = 'cn='.$ldap->escape($newcn).','.$sf_root;
- if (!ldap_rename($ldap->connection, $dn, 'cn='.$ldap->escape($newcn), $sf_root,true)) {
+ $ldap_object['dn'] = 'cn='.$ldap->escape($newcn).','.$dl_root;
+ if (!ldap_rename($ldap->connection, $dn, 'cn='.$ldap->escape($newcn), $dl_root,true)) {
$errors[] = "LDAP Error: Could not modify object $dn ".ldap_error($ldap->connection);
}
$error[] = "Mid-air collision detected, email address $mail renamed to $newmail";
@@ -230,14 +251,13 @@
break;
case 'kill':
if (!$errors) {
- $ldap_object = array();
- $ldap_object['deleteflag'] = 'TRUE';
- if( ldap_modify($ldap->connection, $dn, $ldap_object) ) {
- $messages[] = 'Distribution List '.$_REQUEST['cn'].' marked for deletion';
+ /* Just delete the object and let kolabd clean up */
+ if( ldap_delete($ldap->connection, $dn ) ) {
+ $messages[] = 'Distribution List '.$_REQUEST['cn'].' deleted';
$heading = 'Entry Deleted';
$contenttemplate = 'sfdeleted.tpl';
} else {
- array_push($errors, "LDAP Error: could mark ".$dn." for deletion: ".ldap_error($link));
+ array_push($errors, "LDAP Error: could delete ".$dn.": ".ldap_error($link));
}
}
break;
More information about the commits
mailing list