[1989] in Moira Commits

home help back first fref pref prev next nref lref last post

/svn/moira r4128 - trunk/moira/incremental/ldap

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Mon Aug 5 20:07:49 2013

Date: Mon, 5 Aug 2013 20:07:41 -0400
From: Garry Zacheiss <zacheiss@MIT.EDU>
Message-Id: <201308060007.r7607fte008762@drugstore.mit.edu>
To: moira-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: zacheiss
Date: 2013-08-05 20:07:41 -0400 (Mon, 05 Aug 2013)
New Revision: 4128

Modified:
   trunk/moira/incremental/ldap/winad.c
Log:
Disable sending mail from suspended accounts.

Modified: trunk/moira/incremental/ldap/winad.c
===================================================================
--- trunk/moira/incremental/ldap/winad.c	2013-08-05 12:54:39 UTC (rev 4127)
+++ trunk/moira/incremental/ldap/winad.c	2013-08-06 00:07:41 UTC (rev 4128)
@@ -4207,6 +4207,7 @@
   char *mail_alternate_v[] = {NULL, NULL};
   char *mit_moira_imap_address_v[] = {NULL, NULL};
   char *deliver_and_redirect_v[] = {NULL, NULL};
+  char *recipient_limit_v[] = {NULL, NULL};
   char *c;
 
   dwInfo = OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION |
@@ -4449,6 +4450,33 @@
 	    }
 	}
 
+      n = 0;
+
+      if (State == US_SUSPENDED) 
+	{
+	  recipient_limit_v[0] = "0";
+	  ADD_ATTR("msExchRecipLimit", recipient_limit_v, LDAP_MOD_REPLACE);
+	}
+      else
+	{
+	  recipient_limit_v[0] = NULL;
+	  ADD_ATTR("msExchRecipLimit", recipient_limit_v, LDAP_MOD_REPLACE);
+	}
+
+      mods[n] = NULL;
+      rc = ldap_modify_s(ldap_handle, distinguished_name, mods);
+      
+      if (rc == LDAP_ALREADY_EXISTS || rc == LDAP_TYPE_OR_VALUE_EXISTS)
+	rc = LDAP_SUCCESS;
+      
+      if(rc)
+	{
+	  com_err(whoami, 0,
+		  "Unable to set the exchange attributes for %s : %s",
+		  user_name, ldap_err2string(rc));
+		  return(rc);
+	}
+      
       if (State == US_DELETED)
 	{
 	  linklist_free(group_base);
@@ -6677,6 +6705,7 @@
   char *hide_address_lists_v[] = {NULL, NULL};
   char *principal_v[] = {NULL, NULL};
   char *loginshell_v[] = {NULL, NULL};
+  char *recipient_limit_v[] = {NULL, NULL};
   char userAccountControlStr[80];
   char temp[1024];
   char principal[256];
@@ -6950,14 +6979,18 @@
 	  (atoi(av[U_STATE]) != US_SUSPENDED)) 
 	{
 	  hide_address_lists_v[0] = "TRUE";
+	  recipient_limit_v[0] = NULL;
           ADD_ATTR("msExchHideFromAddressLists", hide_address_lists_v,
                    LDAP_MOD_ADD);
+          ADD_ATTR("msExchRecipLimit", recipient_limit_v, LDAP_MOD_ADD);
 	} 
       else 
 	{
           hide_address_lists_v[0] = "FALSE";
+	  recipient_limit_v[0] = "0";
           ADD_ATTR("msExchHideFromAddressLists", hide_address_lists_v,
                    LDAP_MOD_ADD);
+          ADD_ATTR("msExchRecipLimit", recipient_limit_v, LDAP_MOD_ADD);
 	}
 
       ADD_ATTR("msExchRBACPolicyLink", rbac_policy_link_v, LDAP_MOD_ADD);


home help back first fref pref prev next nref lref last post