- Timestamp:
- Feb 15, 2019 9:07:51 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Utilities.inc.php
r665 r667 1226 1226 1227 1227 /** 1228 * Adds email address to mailman mailing list. Requires /etc/sudoers entry for apache to sudo execute add_members. 1229 * Don't forget to allow php_admin_value open_basedir access to "/var/mailman/bin". 1228 * A stub for apps that still use this function. 1230 1229 * 1231 1230 * @access public 1232 * @param string $email Email address to add. 1233 * @param string $list Name of list to add to. 1234 * @param bool $send_welcome_message True to send welcome message to subscriber. 1235 * @return bool True on success, false on failure. 1231 * @return void 1236 1232 */ 1237 1233 function mailmanAddMember($email, $list, $send_welcome_message=false) 1238 1234 { 1239 1235 $app =& App::getInstance(); 1240 1241 $add_members = '/usr/lib/mailman/bin/add_members'; 1242 if (@is_executable($add_members)) { 1243 $welcome_msg = $send_welcome_message ? 'y' : 'n'; 1244 exec(sprintf("/bin/echo '%s' | /usr/bin/sudo %s -r - --welcome-msg=%s --admin-notify=n '%s'", escapeshellarg($email), escapeshellarg($add_members), $welcome_msg, escapeshellarg($list)), $stdout, $return_code); 1245 if (0 == $return_code) { 1246 $app->logMsg(sprintf('Mailman add member success for list: %s, user: %s', $list, $email), LOG_INFO, __FILE__, __LINE__); 1247 return true; 1248 } else { 1249 $app->logMsg(sprintf('Mailman add member failed for list: %s, user: %s, with message: %s', $list, $email, getDump($stdout)), LOG_WARNING, __FILE__, __LINE__); 1250 return false; 1251 } 1252 } else { 1253 $app->logMsg(sprintf('Mailman add member program not executable: %s', $add_members), LOG_WARNING, __FILE__, __LINE__); 1254 return false; 1255 } 1256 } 1257 1258 /** 1259 * Removes email address from mailman mailing list. Requires /etc/sudoers entry for apache to sudo execute add_members. 1260 * Don't forget to allow php_admin_value open_basedir access to "/var/mailman/bin". 1236 $app->logMsg(sprintf('mailmanAddMember called and ignored: %s, %s, %s', $email, $list, $send_welcome_message), LOG_WARNING, __FILE__, __LINE__); 1237 } 1238 1239 /** 1240 * A stub for apps that still use this function. 1261 1241 * 1262 1242 * @access public 1263 * @param string $email Email address to add. 1264 * @param string $list Name of list to add to. 1265 * @param bool $send_user_ack True to send goodbye message to subscriber. 1266 * @return bool True on success, false on failure. 1243 * @return void 1267 1244 */ 1268 1245 function mailmanRemoveMember($email, $list, $send_user_ack=false) 1269 1246 { 1270 1247 $app =& App::getInstance(); 1271 1272 $remove_members = '/usr/lib/mailman/bin/remove_members'; 1273 if (@is_executable($remove_members)) { 1274 $userack = $send_user_ack ? '' : '--nouserack'; 1275 exec(sprintf("/usr/bin/sudo %s %s --noadminack '%s' '%s'", escapeshellarg($remove_members), $userack, escapeshellarg($list), escapeshellarg($email)), $stdout, $return_code); 1276 if (0 == $return_code) { 1277 $app->logMsg(sprintf('Mailman remove member success for list: %s, user: %s', $list, $email), LOG_INFO, __FILE__, __LINE__); 1278 return true; 1279 } else { 1280 $app->logMsg(sprintf('Mailman remove member failed for list: %s, user: %s, with message: %s', $list, $email, getDump($stdout)), LOG_WARNING, __FILE__, __LINE__); 1281 return false; 1282 } 1283 } else { 1284 // $app->logMsg(sprintf('Mailman remove member program not executable: %s', $remove_members), LOG_WARNING, __FILE__, __LINE__); 1285 return false; 1286 } 1248 $app->logMsg(sprintf('mailmanRemoveMember called and ignored: %s, %s, %s', $email, $list, $send_user_ack), LOG_WARNING, __FILE__, __LINE__); 1287 1249 } 1288 1250
Note: See TracChangeset
for help on using the changeset viewer.