[1989] in Moira Commits
/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);