diff --git includes/og.rules.inc includes/og.rules.inc index c61c075..18e9ba6 100644 --- includes/og.rules.inc +++ includes/og.rules.inc @@ -172,9 +172,13 @@ function og_rules_action_audience_remove_group(&$node, &$group) { /** * Action: Subscribe user to group. + * + * Pass $include_admins = FALSE so it's possible to subscribe site admins too. + * If user doesn't want to subscribe admins, it's possible to check user role + * by Rules conditions. */ function og_rules_action_subscribe_user($user, $node, $settings) { - if (!og_is_group_member($node->nid, $user)) { + if (!og_is_group_member($node->nid, FALSE, $user->uid)) { og_save_subscription($node->nid, $user->uid, array('is_active' => (int)$settings['is_active'])); } } @@ -275,10 +279,23 @@ function og_rules_condition_info() { * Condition: User is group member. */ function og_rules_condition_user_in_group($user, $node, $settings) { - return !empty($node->nid) && og_is_group_member($node->nid, $user); + return !empty($node->nid) && og_is_group_member($node->nid, $settings['include_admins'], $user->uid); } /** + * Condition: User is group member. + */ +function og_rules_condition_user_in_group_form($settings, &$form) { + $form['settings']['include_admins'] = array( + '#type' => 'checkbox', + '#title' => t('Include admins'), + '#description' => t('When enabled, users with "administer nodes" permission will always be treated as group members.'), + '#default_value' => $settings['include_admins'], + ); +} + + +/** * Condition: Content is a group node. */ function og_rules_condition_content_is_group($node, $settings) {