Per-Group Permission for Group Email Diff
This diff adds per-group permissions for the group emailer and overrides the "if a group has any permission then it gets a group email" to "if a group has group email permission set then it will get the group email". Everything else is the same.
To use it, set the permission to the group to have group email permission. All members of the group will get an email if this permission is set.
This lets you (as in my case) to have a group of admins that get copied on every email but a select subset of users on the site to get normal operation.
Index: mods/group_autoemail/group_autoemail.php
===================================================================
--- mods/group_autoemail/group_autoemail.php (revision 1685)
+++ mods/group_autoemail/group_autoemail.php (revision 1684)
@@ -16,7 +16,7 @@
// Get the list of all groups with permissions for this forum.
$group_ids = array();
- $sql = "select group_id from {$PHORUM['forum_group_xref_table']} where ( permission & 512 > 0 ) and forum_id = ".$data["forum_id"];
+ $sql = "select group_id from {$PHORUM['forum_group_xref_table']} where forum_id = ".$data["forum_id"];
$res = mysql_query($sql, $conn);
if ($err = mysql_error()) phorum_db_mysql_error("$err: $sql");
@@ -49,6 +49,7 @@
$user_ids[$row["user_id"]] = $row["user_id"];
}
}
+
if (!$user_ids) return;
// Get the emails and languages of the users selected above.
Index: include/admin/groups.php
===================================================================
--- include/admin/groups.php (revision 1685)
+++ include/admin/groups.php (revision 1684)
@@ -179,8 +179,7 @@
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_EDIT."]", 1, "Edit Their Posts")."<br />".
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files")."<br />".
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages")." ".
- $frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users")." ".
- $frm->checkbox("new_permissions[".PHORUM_USER_GROUP_EMAIL."]", 1, "Group Email")." ";
+ $frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users")." ";
$arr[]="Add A Forum...";
@@ -203,7 +202,6 @@
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files", $perms & PHORUM_USER_ALLOW_ATTACH)."<br />".
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages", $perms & PHORUM_USER_ALLOW_MODERATE_MESSAGES)." ".
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users", $perms & PHORUM_USER_ALLOW_MODERATE_USERS)." ".
- $frm->checkbox("permissions[$forum_id][".PHORUM_USER_GROUP_EMAIL."]", 1, "Group Email", $perms & PHORUM_USER_GROUP_EMAIL)." ".
$frm->hidden("forums[$forum_id]", $forum_id);
Index: include/constants.php
===================================================================
--- include/constants.php (revision 1685)
+++ include/constants.php (revision 1684)
@@ -109,7 +109,6 @@
define("PHORUM_USER_ALLOW_MODERATE_MESSAGES", 64);
define("PHORUM_USER_ALLOW_MODERATE_USERS", 128);
define("PHORUM_USER_ALLOW_FORUM_PROPERTIES", 256);
- define("PHORUM_USER_GROUP_EMAIL", 512);
define("PHORUM_MODERATE_ALLOWED_ANYWHERE", -1);
This diff adds per-group permissions for the group emailer and overrides the "if a group has any permission then it gets a group email" to "if a group has group email permission set then it will get the group email". Everything else is the same.
To use it, set the permission to the group to have group email permission. All members of the group will get an email if this permission is set.
This lets you (as in my case) to have a group of admins that get copied on every email but a select subset of users on the site to get normal operation.
Index: mods/group_autoemail/group_autoemail.php
===================================================================
--- mods/group_autoemail/group_autoemail.php (revision 1685)
+++ mods/group_autoemail/group_autoemail.php (revision 1684)
@@ -16,7 +16,7 @@
// Get the list of all groups with permissions for this forum.
$group_ids = array();
- $sql = "select group_id from {$PHORUM['forum_group_xref_table']} where ( permission & 512 > 0 ) and forum_id = ".$data["forum_id"];
+ $sql = "select group_id from {$PHORUM['forum_group_xref_table']} where forum_id = ".$data["forum_id"];
$res = mysql_query($sql, $conn);
if ($err = mysql_error()) phorum_db_mysql_error("$err: $sql");
@@ -49,6 +49,7 @@
$user_ids[$row["user_id"]] = $row["user_id"];
}
}
+
if (!$user_ids) return;
// Get the emails and languages of the users selected above.
Index: include/admin/groups.php
===================================================================
--- include/admin/groups.php (revision 1685)
+++ include/admin/groups.php (revision 1684)
@@ -179,8 +179,7 @@
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_EDIT."]", 1, "Edit Their Posts")."<br />".
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files")."<br />".
$frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages")." ".
- $frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users")." ".
- $frm->checkbox("new_permissions[".PHORUM_USER_GROUP_EMAIL."]", 1, "Group Email")." ";
+ $frm->checkbox("new_permissions[".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users")." ";
$arr[]="Add A Forum...";
@@ -203,7 +202,6 @@
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_ATTACH."]", 1, "Attach Files", $perms & PHORUM_USER_ALLOW_ATTACH)."<br />".
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_MESSAGES."]", 1, "Moderate Messages", $perms & PHORUM_USER_ALLOW_MODERATE_MESSAGES)." ".
$frm->checkbox("permissions[$forum_id][".PHORUM_USER_ALLOW_MODERATE_USERS."]", 1, "Moderate Users", $perms & PHORUM_USER_ALLOW_MODERATE_USERS)." ".
- $frm->checkbox("permissions[$forum_id][".PHORUM_USER_GROUP_EMAIL."]", 1, "Group Email", $perms & PHORUM_USER_GROUP_EMAIL)." ".
$frm->hidden("forums[$forum_id]", $forum_id);
Index: include/constants.php
===================================================================
--- include/constants.php (revision 1685)
+++ include/constants.php (revision 1684)
@@ -109,7 +109,6 @@
define("PHORUM_USER_ALLOW_MODERATE_MESSAGES", 64);
define("PHORUM_USER_ALLOW_MODERATE_USERS", 128);
define("PHORUM_USER_ALLOW_FORUM_PROPERTIES", 256);
- define("PHORUM_USER_GROUP_EMAIL", 512);
define("PHORUM_MODERATE_ALLOWED_ANYWHERE", -1);