diff --git a/drupal-org.make b/drupal-org.make index 2d8abda..36bdba3 100644 --- a/drupal-org.make +++ b/drupal-org.make @@ -164,15 +164,7 @@ projects[file_entity][download][revision] = "b610413" projects[flag][type] = "module" projects[flag][subdir] = "contrib" -projects[flag][version] = "2.2" - -; Issue #1965760: Manually set taxonomy term flag types because its different. -; http://drupal.org/node/1965760 -projects[flag][patch][] = "https://drupal.org/files/issues/1965760.29.flag_.entity-tokens.patch" - -; Provide a hook to allow default flag definitions to be altered. -; https://drupal.org/node/2027091#comment-8012263 -projects[flag][patch][] = "https://drupal.org/files/flag-default-flags-alter-hook-2027091-03.patch" +projects[flag][version] = "3.9" projects[flag_abuse][type] = "module" projects[flag_abuse][subdir] = "contrib" diff --git a/modules/commons/commons_content_moderation/commons_content_moderation.features.inc b/modules/commons/commons_content_moderation/commons_content_moderation.features.inc index 3a75218..e4999ed 100644 --- a/modules/commons/commons_content_moderation/commons_content_moderation.features.inc +++ b/modules/commons/commons_content_moderation/commons_content_moderation.features.inc @@ -27,7 +27,7 @@ function commons_content_moderation_flag_default_flags() { $flags = array(); // Exported flag: "Comment inappropriate". $flags['inappropriate_comment'] = array( - 'content_type' => 'comment', + 'entity_type' => 'comment', 'title' => 'Comment inappropriate', 'global' => 0, 'types' => array( @@ -47,29 +47,25 @@ function commons_content_moderation_flag_default_flags() { 'unflag_message' => '', 'unflag_denied_text' => '', 'link_type' => 'confirm', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), + 'show_in_links' => array( + 'diff_standard' => TRUE, + 'full' => TRUE, + 'token' => TRUE, ), 'weight' => 0, 'show_on_form' => 0, 'access_author' => 'comment_others', - 'show_on_comment' => 1, 'flag_confirmation' => 'Are you sure you want to report this comment as inappropriate?', 'unflag_confirmation' => 'Are you sure you want to cancel reporting this comment as inappropriate?', 'module' => 'commons_content_moderation', 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); // Exported flag: "Node inappropriate". $flags['inappropriate_node'] = array( - 'content_type' => 'node', + 'entity_type' => 'node', 'title' => 'Node inappropriate', 'global' => 0, 'types' => array( @@ -87,19 +83,12 @@ function commons_content_moderation_flag_default_flags() { 'unflag_message' => '', 'unflag_denied_text' => '', 'link_type' => 'confirm', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), + 'show_in_links' => array( + 'full' => TRUE, ), 'weight' => 0, 'show_on_form' => 0, 'access_author' => '', - 'show_on_page' => 1, - 'show_on_teaser' => 0, 'show_contextual_link' => FALSE, 'i18n' => 0, 'flag_confirmation' => 'Are you sure you want to report this content as inappropriate?', @@ -108,7 +97,7 @@ function commons_content_moderation_flag_default_flags() { 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); return $flags; diff --git a/modules/commons/commons_content_moderation/commons_content_moderation.features.user_permission.inc b/modules/commons/commons_content_moderation/commons_content_moderation.features.user_permission.inc new file mode 100644 index 0000000..763738f --- /dev/null +++ b/modules/commons/commons_content_moderation/commons_content_moderation.features.user_permission.inc @@ -0,0 +1,68 @@ + 'flag abuse_user', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'flag inappropriate_comment'. + $permissions['flag inappropriate_comment'] = array( + 'name' => 'flag inappropriate_comment', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'flag inappropriate_node'. + $permissions['flag inappropriate_node'] = array( + 'name' => 'flag inappropriate_node', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag abuse_user'. + $permissions['unflag abuse_user'] = array( + 'name' => 'unflag abuse_user', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag inappropriate_comment'. + $permissions['unflag inappropriate_comment'] = array( + 'name' => 'unflag inappropriate_comment', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag inappropriate_node'. + $permissions['unflag inappropriate_node'] = array( + 'name' => 'unflag inappropriate_node', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + return $permissions; +} \ No newline at end of file diff --git a/modules/commons/commons_content_moderation/commons_content_moderation.info b/modules/commons/commons_content_moderation/commons_content_moderation.info index 2fb3130..962afc6 100644 --- a/modules/commons/commons_content_moderation/commons_content_moderation.info +++ b/modules/commons/commons_content_moderation/commons_content_moderation.info @@ -3,6 +3,7 @@ description = Provides a content moderator role which allows privileged users to package = Commons - Building blocks core = 7.x +dependencies[] = comment dependencies[] = ctools dependencies[] = flag dependencies[] = flag_abuse @@ -14,6 +15,12 @@ features[ctools][] = views:views_default:3.0 features[features_api][] = api:2 features[flag][] = inappropriate_comment features[flag][] = inappropriate_node +features[user_permission][] = flag abuse_user +features[user_permission][] = flag inappropriate_comment +features[user_permission][] = flag inappropriate_node +features[user_permission][] = unflag abuse_user +features[user_permission][] = unflag inappropriate_comment +features[user_permission][] = unflag inappropriate_node features[user_role][] = content moderator features[variable][] = flag_abuse_flags features[views_view][] = commons_content_moderation_reported_comments diff --git a/modules/commons/commons_content_moderation/commons_content_moderation.views_default.inc b/modules/commons/commons_content_moderation/commons_content_moderation.views_default.inc index b6edc0f..673a125 100644 --- a/modules/commons/commons_content_moderation/commons_content_moderation.views_default.inc +++ b/modules/commons/commons_content_moderation/commons_content_moderation.views_default.inc @@ -245,7 +245,7 @@ function commons_content_moderation_views_default_views() { $handler->display->display_options['fields']['entity_id']['field'] = 'comment_body'; /* Sort criterion: Flags: Flagged time */ $handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp'; - $handler->display->display_options['sorts']['timestamp']['table'] = 'flag_content'; + $handler->display->display_options['sorts']['timestamp']['table'] = 'flagging'; $handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp'; $handler->display->display_options['sorts']['timestamp']['relationship'] = 'flag_content_rel'; /* Filter criterion: Comment: Approved */ diff --git a/modules/commons/commons_follow/commons_follow.module b/modules/commons/commons_follow/commons_follow.module index 5fa62f8..10f8615 100644 --- a/modules/commons/commons_follow/commons_follow.module +++ b/modules/commons/commons_follow/commons_follow.module @@ -111,7 +111,7 @@ function commons_follow_views_default_views_alter(&$views) { // Exposed "Following" filter. $handler->display->display_options['filters']['flagged']['id'] = 'flagged'; - $handler->display->display_options['filters']['flagged']['table'] = 'flag_content'; + $handler->display->display_options['filters']['flagged']['table'] = 'flagging'; $handler->display->display_options['filters']['flagged']['field'] = 'flagged'; $handler->display->display_options['filters']['flagged']['relationship'] = 'flag_content_rel'; $handler->display->display_options['filters']['flagged']['ui_name'] = 'Following'; @@ -309,9 +309,9 @@ function commons_follow_get_followed_content($account = array()) { $results = array(); $flag_ids = commons_follow_get_flag_ids(); // Get a list of everything that the user is following. - $result = db_query("SELECT fid, content_id FROM {flag_content} WHERE fid IN (:fids) AND uid = :uid", array(':fids' => array_keys($flag_ids), ':uid' => $account->uid)); + $result = db_query("SELECT fid, entity_id FROM {flagging} WHERE fid IN (:fids) AND uid = :uid", array(':fids' => array_keys($flag_ids), ':uid' => $account->uid)); foreach ($result as $this_result) { - $results[$flag_ids[$this_result->fid]][] = $this_result->content_id; + $results[$flag_ids[$this_result->fid]][] = $this_result->entity_id; } return $results; diff --git a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.inc b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.inc index ec89a6c..f20077a 100644 --- a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.inc +++ b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.inc @@ -21,7 +21,7 @@ function commons_follow_group_flag_default_flags() { // Exported flag: "Groups". $flags['commons_follow_group'] = array( - 'content_type' => 'node', + 'entity_type' => 'node', 'title' => 'Groups', 'global' => 0, 'types' => array( @@ -35,31 +35,25 @@ function commons_follow_group_flag_default_flags() { 'unflag_message' => 'Not following', 'unflag_denied_text' => '', 'link_type' => 'toggle', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), - ), 'weight' => 0, 'show_on_form' => 0, 'access_author' => '', - 'show_on_page' => 1, - 'show_on_teaser' => 1, + 'show_in_links' => array( + 'full' => TRUE, + 'teaser' => TRUE, + ), 'show_contextual_link' => FALSE, 'i18n' => 0, 'module' => 'commons_follow_group', 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); // Exported flag: "Commons Follow (Groups - Email)". $flags['email_group'] = array( - 'content_type' => 'node', + 'entity_type' => 'node', 'title' => 'Commons Follow (Groups - Email)', 'global' => 0, 'types' => array( @@ -73,26 +67,16 @@ function commons_follow_group_flag_default_flags() { 'unflag_message' => '', 'unflag_denied_text' => '', 'link_type' => 'toggle', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), - ), 'weight' => -11, 'show_on_form' => 0, 'access_author' => '', - 'show_on_page' => 0, - 'show_on_teaser' => 0, 'show_contextual_link' => FALSE, 'i18n' => 0, 'module' => 'commons_follow_group', 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); return $flags; diff --git a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.user_permission.inc b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.user_permission.inc new file mode 100644 index 0000000..3c1ef2f --- /dev/null +++ b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.features.user_permission.inc @@ -0,0 +1,50 @@ + 'flag commons_follow_group', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'flag email_group'. + $permissions['flag email_group'] = array( + 'name' => 'flag email_group', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag commons_follow_group'. + $permissions['unflag commons_follow_group'] = array( + 'name' => 'unflag commons_follow_group', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag email_group'. + $permissions['unflag email_group'] = array( + 'name' => 'unflag email_group', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + return $permissions; +} diff --git a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.info b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.info index cdab940..8099520 100644 --- a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.info +++ b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.info @@ -12,6 +12,10 @@ features[ctools][] = strongarm:strongarm:1 features[features_api][] = api:2 features[flag][] = commons_follow_group features[flag][] = email_group +features[user_permission][] = flag commons_follow_group +features[user_permission][] = flag email_group +features[user_permission][] = unflag commons_follow_group +features[user_permission][] = unflag email_group features[variable][] = message_subscribe_og ; Information added by Drupal.org packaging script on 2015-03-18 diff --git a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.module b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.module index 4ed3254..366155a 100644 --- a/modules/commons/commons_follow/commons_follow_group/commons_follow_group.module +++ b/modules/commons/commons_follow/commons_follow_group/commons_follow_group.module @@ -19,7 +19,7 @@ function commons_follow_group_commons_follow_get_nids($account, $options) { // Get subscribe flag IDs. $flag_ids = commons_follow_get_subscription_flags_ids('node'); - $query = db_select('flag_content', 'f'); + $query = db_select('flagging', 'f'); if (!empty($options['range'])) { $query->range(0, $options['range']); } @@ -27,9 +27,9 @@ function commons_follow_group_commons_follow_get_nids($account, $options) { $result = $query ->condition('fid', $flag_ids, 'IN') ->condition('uid', $account->uid, '=') - ->condition('content_type', 'node', '=') - ->condition('content_id', $gids['node'], 'IN') - ->fields('f',array('content_id')) + ->condition('entity_type', 'node', '=') + ->condition('entity_id', $gids['node'], 'IN') + ->fields('f',array('entity_id')) ->execute() ->fetchAll(); @@ -39,7 +39,7 @@ function commons_follow_group_commons_follow_get_nids($account, $options) { $nids = array(); foreach($result as $row) { - $nids[] = $row->content_id; + $nids[] = $row->entity_id; } // Get the groups' content IDs. @@ -135,7 +135,7 @@ function commons_follow_group_og_membership_delete(OgMembership $og_membership) } } -// function flag($action, $flag_name, $content_id, $account = NULL) { +// function flag($action, $flag_name, $entity_id, $account = NULL) { function commons_follow_group_sync_flag_to_group_membership($og_membership) { if ($og_membership->entity_type == 'user' && $og_membership->field_name == 'og_user_node') { diff --git a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.inc b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.inc index 145c7fe..2bf5420 100644 --- a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.inc +++ b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.inc @@ -19,7 +19,7 @@ function commons_follow_node_flag_default_flags() { // Exported flag: "Other content you follow". $flags['commons_follow_node'] = array( - 'content_type' => 'node', + 'entity_type' => 'node', 'title' => 'Other content', 'global' => 0, 'types' => array(), @@ -31,26 +31,20 @@ function commons_follow_node_flag_default_flags() { 'unflag_message' => 'Not following', 'unflag_denied_text' => '', 'link_type' => 'toggle', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), - ), 'weight' => -10, 'show_on_form' => 0, 'access_author' => '', - 'show_on_page' => 1, - 'show_on_teaser' => 1, + 'show_in_links' => array( + 'full' => TRUE, + 'teaser' => TRUE, + ), 'show_contextual_link' => FALSE, 'i18n' => 0, 'module' => 'commons_follow_node', 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); return $flags; diff --git a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.user_permission.inc b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.user_permission.inc new file mode 100644 index 0000000..91974d9 --- /dev/null +++ b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.features.user_permission.inc @@ -0,0 +1,32 @@ + 'flag commons_follow_node', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag commons_follow_node'. + $permissions['unflag commons_follow_node'] = array( + 'name' => 'unflag commons_follow_node', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + return $permissions; +} \ No newline at end of file diff --git a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.info b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.info index 5580b47..b7d1993 100644 --- a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.info +++ b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.info @@ -10,6 +10,8 @@ dependencies[] = views_litepager features[ctools][] = views:views_default:3.0 features[features_api][] = api:2 features[flag][] = commons_follow_node +features[user_permission][] = flag commons_follow_node +features[user_permission][] = unflag commons_follow_node features[views_view][] = commons_follow_node features_exclude[dependencies][views] = views diff --git a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.module b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.module index 5f49126..74233dd 100644 --- a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.module +++ b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.module @@ -19,7 +19,7 @@ function commons_follow_node_commons_follow_get_nids($account, $options) { return array(); } - $query = db_select('flag_content', 'f'); + $query = db_select('flagging', 'f'); if (!empty($options['range'])) { $query->range(0, $options['range']); @@ -28,13 +28,13 @@ function commons_follow_node_commons_follow_get_nids($account, $options) { $result = $query ->condition('fid', $flag_ids, 'IN') ->condition('uid', $account->uid, '=') - ->condition('content_type', 'node', '=') - ->fields('f',array('content_id')) + ->condition('entity_type', 'node', '=') + ->fields('f',array('entity_id')) ->execute() ->fetchAll(); $nids = array(); foreach($result as $row) { - $nids[] = (integer) $row->content_id; + $nids[] = (integer) $row->entity_id; } return $nids; diff --git a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.views_default.inc b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.views_default.inc index aa1c658..d4b0c07 100644 --- a/modules/commons/commons_follow/commons_follow_node/commons_follow_node.views_default.inc +++ b/modules/commons/commons_follow/commons_follow_node/commons_follow_node.views_default.inc @@ -84,7 +84,7 @@ function commons_follow_node_views_default_views() { $handler->display->display_options['relationships']['flag_content_rel_1']['user_scope'] = 'any'; /* Relationship: Flags: User */ $handler->display->display_options['relationships']['uid']['id'] = 'uid'; - $handler->display->display_options['relationships']['uid']['table'] = 'flag_content'; + $handler->display->display_options['relationships']['uid']['table'] = 'flagging'; $handler->display->display_options['relationships']['uid']['field'] = 'uid'; $handler->display->display_options['relationships']['uid']['relationship'] = 'flag_content_rel'; /* Field: Content: Title */ @@ -94,14 +94,14 @@ function commons_follow_node_views_default_views() { $handler->display->display_options['fields']['title_field']['link_to_entity'] = 1; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops_1']['id'] = 'ops_1'; - $handler->display->display_options['fields']['ops_1']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops_1']['table'] = 'flagging'; $handler->display->display_options['fields']['ops_1']['field'] = 'ops'; $handler->display->display_options['fields']['ops_1']['relationship'] = 'flag_content_rel_1'; $handler->display->display_options['fields']['ops_1']['label'] = 'Send email?'; $handler->display->display_options['fields']['ops_1']['element_label_colon'] = FALSE; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops']['id'] = 'ops'; - $handler->display->display_options['fields']['ops']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops']['table'] = 'flagging'; $handler->display->display_options['fields']['ops']['field'] = 'ops'; $handler->display->display_options['fields']['ops']['relationship'] = 'flag_content_rel'; $handler->display->display_options['fields']['ops']['label'] = ''; @@ -109,7 +109,7 @@ function commons_follow_node_views_default_views() { $handler->display->display_options['fields']['ops']['link_type'] = 'toggle'; /* Sort criterion: Flags: Flagged time */ $handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp'; - $handler->display->display_options['sorts']['timestamp']['table'] = 'flag_content'; + $handler->display->display_options['sorts']['timestamp']['table'] = 'flagging'; $handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp'; $handler->display->display_options['sorts']['timestamp']['relationship'] = 'flag_content_rel'; $handler->display->display_options['sorts']['timestamp']['order'] = 'DESC'; diff --git a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.inc b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.inc index f2f38c3..8db89fa 100644 --- a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.inc +++ b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.inc @@ -19,7 +19,7 @@ function commons_follow_term_flag_default_flags() { // Exported flag: "Topics you follow". $flags['commons_follow_term'] = array( - 'content_type' => 'taxonomy_term', + 'entity_type' => 'taxonomy_term', 'title' => 'Topics', 'global' => 0, 'types' => array( @@ -33,23 +33,19 @@ function commons_follow_term_flag_default_flags() { 'unflag_message' => 'Not following', 'unflag_denied_text' => '', 'link_type' => 'toggle', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), - ), 'weight' => -8, - 'show_on_entity' => 1, + 'show_in_links' => array( + 'diff_standard' => TRUE, + 'full' => TRUE, + 'token' => TRUE, + ), 'show_on_form' => 0, 'access_author' => '', 'module' => 'commons_follow_term', 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); return $flags; diff --git a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.user_permission.inc b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.user_permission.inc new file mode 100644 index 0000000..c9d612c --- /dev/null +++ b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.features.user_permission.inc @@ -0,0 +1,32 @@ + 'flag commons_follow_term', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag commons_follow_term'. + $permissions['unflag commons_follow_term'] = array( + 'name' => 'unflag commons_follow_term', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + return $permissions; +} \ No newline at end of file diff --git a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.info b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.info index 41692b2..2b51305 100644 --- a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.info +++ b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.info @@ -10,6 +10,8 @@ dependencies[] = views_litepager features[ctools][] = views:views_default:3.0 features[features_api][] = api:2 features[flag][] = commons_follow_term +features[user_permission][] = flag commons_follow_term +features[user_permission][] = unflag commons_follow_term features[views_view][] = commons_follow_taxonomy_term features_exclude[dependencies][ctools] = ctools diff --git a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.module b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.module index 2eb4b56..a55bb6c 100644 --- a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.module +++ b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.module @@ -19,12 +19,12 @@ function commons_follow_term_commons_follow_get_nids($account, $options) { } // Get user's flagged terms. - $query = db_select('flag_content', 'f'); + $query = db_select('flagging', 'f'); $result = $query ->condition('fid', $flag_ids, 'IN') ->condition('uid', $account->uid, '=') - ->condition('content_type', 'taxonomy_term', '=') - ->fields('f',array('content_id')) + ->condition('entity_type', 'taxonomy_term', '=') + ->fields('f',array('entity_id')) ->execute() ->fetchAll(); @@ -35,7 +35,7 @@ function commons_follow_term_commons_follow_get_nids($account, $options) { $tids = array(); foreach($result as $row) { - $tids[] = (integer) $row->content_id; + $tids[] = (integer) $row->entity_id; } // Get IDs of nodes tagged by the specified terms. diff --git a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.views_default.inc b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.views_default.inc index 24fc59c..ec2306a 100644 --- a/modules/commons/commons_follow/commons_follow_term/commons_follow_term.views_default.inc +++ b/modules/commons/commons_follow/commons_follow_term/commons_follow_term.views_default.inc @@ -84,7 +84,7 @@ function commons_follow_term_views_default_views() { $handler->display->display_options['relationships']['flag_content_rel_1']['user_scope'] = 'any'; /* Relationship: Flags: User */ $handler->display->display_options['relationships']['uid']['id'] = 'uid'; - $handler->display->display_options['relationships']['uid']['table'] = 'flag_content'; + $handler->display->display_options['relationships']['uid']['table'] = 'flagging'; $handler->display->display_options['relationships']['uid']['field'] = 'uid'; $handler->display->display_options['relationships']['uid']['relationship'] = 'flag_content_rel'; /* Field: Taxonomy term: Name */ @@ -97,13 +97,13 @@ function commons_follow_term_views_default_views() { $handler->display->display_options['fields']['name']['link_to_taxonomy'] = TRUE; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops_1']['id'] = 'ops_1'; - $handler->display->display_options['fields']['ops_1']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops_1']['table'] = 'flagging'; $handler->display->display_options['fields']['ops_1']['field'] = 'ops'; $handler->display->display_options['fields']['ops_1']['relationship'] = 'flag_content_rel_1'; $handler->display->display_options['fields']['ops_1']['label'] = 'Send email?'; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops']['id'] = 'ops'; - $handler->display->display_options['fields']['ops']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops']['table'] = 'flagging'; $handler->display->display_options['fields']['ops']['field'] = 'ops'; $handler->display->display_options['fields']['ops']['relationship'] = 'flag_content_rel'; $handler->display->display_options['fields']['ops']['label'] = ''; diff --git a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.inc b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.inc index 79061c5..fe64b85 100644 --- a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.inc +++ b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.inc @@ -28,7 +28,7 @@ function commons_follow_user_flag_default_flags() { // Exported flag: "People". $flags['commons_follow_user'] = array( - 'content_type' => 'user', + 'entity_type' => 'user', 'title' => 'People', 'global' => 0, 'types' => array(), @@ -40,14 +40,6 @@ function commons_follow_user_flag_default_flags() { 'unflag_message' => 'Not following', 'unflag_denied_text' => '', 'link_type' => 'toggle', - 'roles' => array( - 'flag' => array( - 0 => 2, - ), - 'unflag' => array( - 0 => 2, - ), - ), 'weight' => -13, 'show_on_form' => 0, 'access_author' => '', @@ -57,7 +49,7 @@ function commons_follow_user_flag_default_flags() { 'locked' => array( 0 => 'name', ), - 'api_version' => 2, + 'api_version' => 3, ); return $flags; diff --git a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.user_permission.inc b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.user_permission.inc new file mode 100644 index 0000000..1147627 --- /dev/null +++ b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.features.user_permission.inc @@ -0,0 +1,32 @@ + 'flag commons_follow_user', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + // Exported permission: 'unflag commons_follow_user'. + $permissions['unflag commons_follow_user'] = array( + 'name' => 'unflag commons_follow_user', + 'roles' => array( + 'authenticated user' => 'authenticated user', + ), + 'module' => 'flag', + ); + + return $permissions; +} \ No newline at end of file diff --git a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.info b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.info index fc8cc14..eb9a819 100644 --- a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.info +++ b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.info @@ -22,6 +22,8 @@ features[features_api][] = api:2 features[field_instance][] = message-commons_follow_user_user_followed-field_target_users features[flag][] = commons_follow_user features[message_type][] = commons_follow_user_user_followed +features[user_permission][] = flag commons_follow_user +features[user_permission][] = unflag commons_follow_user features[variable][] = field_bundle_settings_message__commons_follow_user_user_followed features[views_view][] = commons_follow_user features[views_view][] = commons_follow_user_followers diff --git a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.module b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.module index 0f4cac6..f8d7f3b 100644 --- a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.module +++ b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.module @@ -21,12 +21,12 @@ function commons_follow_user_commons_follow_get_nids($account, $options) { } // Get flagged user IDs. - $query = db_select('flag_content', 'f'); + $query = db_select('flagging', 'f'); $result = $query ->condition('fid', $flag_ids, 'IN') ->condition('uid', $account->uid, '=') - ->condition('content_type', 'user', '=') - ->fields('f',array('content_id')) + ->condition('entity_type', 'user', '=') + ->fields('f',array('entity_id')) ->execute() ->fetchAll(); @@ -37,7 +37,7 @@ function commons_follow_user_commons_follow_get_nids($account, $options) { $uids = array(); foreach($result as $row) { - $uids[] = (integer) $row->content_id; + $uids[] = (integer) $row->entity_id; } // Get the user's node IDs. @@ -63,12 +63,12 @@ function commons_follow_user_commons_follow_get_nids($account, $options) { } /** - * Implements hook_flag(). + * Implements hook_flag_flag(). */ -function commons_follow_user_flag($op, $flag, $content_id, $account, $fcid) { +function commons_follow_user_flag_flag($flag, $entity_id, $account, $fcid) { // Display an activity stream message when a user follows another user. - if (module_exists('commons_activity_streams') && $flag->name == 'commons_follow_user' && $op == 'flag') { - $followed_user = user_load($content_id); + if (module_exists('commons_activity_streams') && $flag->name == 'commons_follow_user') { + $followed_user = user_load($entity_id); // Don't generate a message for flagging blocked users. if (!$followed_user->status) { return; diff --git a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.views_default.inc b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.views_default.inc index e79fddf..005e8e6 100644 --- a/modules/commons/commons_follow/commons_follow_user/commons_follow_user.views_default.inc +++ b/modules/commons/commons_follow/commons_follow_user/commons_follow_user.views_default.inc @@ -84,7 +84,7 @@ function commons_follow_user_views_default_views() { $handler->display->display_options['relationships']['flag_content_rel_1']['user_scope'] = 'any'; /* Relationship: Flags: User */ $handler->display->display_options['relationships']['uid']['id'] = 'uid'; - $handler->display->display_options['relationships']['uid']['table'] = 'flag_content'; + $handler->display->display_options['relationships']['uid']['table'] = 'flagging'; $handler->display->display_options['relationships']['uid']['field'] = 'uid'; $handler->display->display_options['relationships']['uid']['relationship'] = 'flag_content_rel'; /* Field: User: Name */ @@ -96,20 +96,20 @@ function commons_follow_user_views_default_views() { $handler->display->display_options['fields']['name']['alter']['ellipsis'] = FALSE; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops_1']['id'] = 'ops_1'; - $handler->display->display_options['fields']['ops_1']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops_1']['table'] = 'flagging'; $handler->display->display_options['fields']['ops_1']['field'] = 'ops'; $handler->display->display_options['fields']['ops_1']['relationship'] = 'flag_content_rel_1'; $handler->display->display_options['fields']['ops_1']['label'] = 'Send email?'; /* Field: Flags: Flag link */ $handler->display->display_options['fields']['ops']['id'] = 'ops'; - $handler->display->display_options['fields']['ops']['table'] = 'flag_content'; + $handler->display->display_options['fields']['ops']['table'] = 'flagging'; $handler->display->display_options['fields']['ops']['field'] = 'ops'; $handler->display->display_options['fields']['ops']['relationship'] = 'flag_content_rel'; $handler->display->display_options['fields']['ops']['label'] = ''; $handler->display->display_options['fields']['ops']['element_label_colon'] = FALSE; /* Sort criterion: Flags: Flagged time */ $handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp'; - $handler->display->display_options['sorts']['timestamp']['table'] = 'flag_content'; + $handler->display->display_options['sorts']['timestamp']['table'] = 'flagging'; $handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp'; $handler->display->display_options['sorts']['timestamp']['relationship'] = 'flag_content_rel'; $handler->display->display_options['sorts']['timestamp']['order'] = 'DESC'; @@ -206,7 +206,7 @@ function commons_follow_user_views_default_views() { $handler->display->display_options['relationships']['flag_content_rel']['user_scope'] = 'any'; /* Relationship: Flags: User */ $handler->display->display_options['relationships']['uid']['id'] = 'uid'; - $handler->display->display_options['relationships']['uid']['table'] = 'flag_content'; + $handler->display->display_options['relationships']['uid']['table'] = 'flagging'; $handler->display->display_options['relationships']['uid']['field'] = 'uid'; $handler->display->display_options['relationships']['uid']['relationship'] = 'flag_content_rel'; $handler->display->display_options['relationships']['uid']['required'] = TRUE; @@ -233,13 +233,13 @@ function commons_follow_user_views_default_views() { $handler->display->display_options['fields']['name']['element_default_classes'] = FALSE; /* Sort criterion: Flags: Flagged time */ $handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp'; - $handler->display->display_options['sorts']['timestamp']['table'] = 'flag_content'; + $handler->display->display_options['sorts']['timestamp']['table'] = 'flagging'; $handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp'; $handler->display->display_options['sorts']['timestamp']['relationship'] = 'flag_content_rel'; $handler->display->display_options['sorts']['timestamp']['order'] = 'DESC'; /* Contextual filter: Flags: Content ID */ $handler->display->display_options['arguments']['content_id']['id'] = 'content_id'; - $handler->display->display_options['arguments']['content_id']['table'] = 'flag_content'; + $handler->display->display_options['arguments']['content_id']['table'] = 'flagging'; $handler->display->display_options['arguments']['content_id']['field'] = 'content_id'; $handler->display->display_options['arguments']['content_id']['relationship'] = 'flag_content_rel'; $handler->display->display_options['arguments']['content_id']['default_action'] = 'default'; @@ -381,13 +381,13 @@ function commons_follow_user_views_default_views() { $handler->display->display_options['fields']['name']['element_default_classes'] = FALSE; /* Sort criterion: Flags: Flagged time */ $handler->display->display_options['sorts']['timestamp']['id'] = 'timestamp'; - $handler->display->display_options['sorts']['timestamp']['table'] = 'flag_content'; + $handler->display->display_options['sorts']['timestamp']['table'] = 'flagging'; $handler->display->display_options['sorts']['timestamp']['field'] = 'timestamp'; $handler->display->display_options['sorts']['timestamp']['relationship'] = 'flag_content_rel'; $handler->display->display_options['sorts']['timestamp']['order'] = 'DESC'; /* Contextual filter: Flags: User uid */ $handler->display->display_options['arguments']['uid']['id'] = 'uid'; - $handler->display->display_options['arguments']['uid']['table'] = 'flag_content'; + $handler->display->display_options['arguments']['uid']['table'] = 'flagging'; $handler->display->display_options['arguments']['uid']['field'] = 'uid'; $handler->display->display_options['arguments']['uid']['relationship'] = 'flag_content_rel'; $handler->display->display_options['arguments']['uid']['default_action'] = 'default'; diff --git a/modules/commons/commons_like/commons-like.tpl.php b/modules/commons/commons_like/commons-like.tpl.php index ab83a4a..e07e5a7 100644 --- a/modules/commons/commons_like/commons-like.tpl.php +++ b/modules/commons/commons_like/commons-like.tpl.php @@ -32,8 +32,8 @@ * ) * - $mode: Display mode. * - $just_voted: Indicator whether the user has just voted (boolean). - * - $content_type: "node" or "comment". - * - $content_id: Node or comment id. + * - $entity_type: "node" or "comment". + * - $entity_id: Node or comment id. * - $buttons: Array with themed buttons (built in preprocess function). * - $info: String with user readable information (built in preprocess function). */ diff --git a/modules/commons/commons_like/commons_like.module b/modules/commons/commons_like/commons_like.module index d45ff3f..caa3be1 100644 --- a/modules/commons/commons_like/commons_like.module +++ b/modules/commons/commons_like/commons_like.module @@ -89,7 +89,7 @@ function commons_like_existing_node_like_messages($acting_uid, $target_nids) { function commons_like_theme() { return array( 'rate_template_commons_like' => array( - 'variables' => array('links' => NULL, 'results' => NULL, 'mode' => NULL, 'just_voted' => FALSE, 'content_type' => NULL, 'content_id' => NULL, 'display_options' => NULL), + 'variables' => array('links' => NULL, 'results' => NULL, 'mode' => NULL, 'just_voted' => FALSE, 'entity_type' => NULL, 'entity_id' => NULL, 'display_options' => NULL), 'template' => 'commons-like', ), ); diff --git a/modules/commons/commons_q_a/commons_q_a.module b/modules/commons/commons_q_a/commons_q_a.module index 6725a5c..9d886c6 100644 --- a/modules/commons/commons_q_a/commons_q_a.module +++ b/modules/commons/commons_q_a/commons_q_a.module @@ -12,7 +12,7 @@ include_once 'commons_q_a.features.inc'; function commons_q_a_theme() { return array( 'rate_template_commons_thumbs_up_down' => array( - 'variables' => array('links' => NULL, 'results' => NULL, 'mode' => NULL, 'just_voted' => FALSE, 'content_type' => NULL, 'content_id' => NULL, 'display_options' => NULL), + 'variables' => array('links' => NULL, 'results' => NULL, 'mode' => NULL, 'just_voted' => FALSE, 'entity_type' => NULL, 'entity_id' => NULL, 'display_options' => NULL), 'template' => 'commons-thumbs-up-down', ), ); diff --git a/modules/commons/commons_radioactivity/includes/incidents/commons_radioactivity.incidents_flag.inc b/modules/commons/commons_radioactivity/includes/incidents/commons_radioactivity.incidents_flag.inc index 8f3b4b2..01c7ef3 100644 --- a/modules/commons/commons_radioactivity/includes/incidents/commons_radioactivity.incidents_flag.inc +++ b/modules/commons/commons_radioactivity/includes/incidents/commons_radioactivity.incidents_flag.inc @@ -6,26 +6,37 @@ */ /** - * Implements hook_flag(). + * Implements hook_flag_flag(). * * Trigger radioactivity incidents when a user follows a node or group. */ -function commons_radioactivity_flag($op, $flag, $content_id, $account, $fcid) { +function commons_radioactivity_flag_flag($flag, $entity_id, $account, $fcid) { if (in_array($flag->name, array('commons_follow_node', 'commons_follow_group'))) { - $node = node_load($content_id); + $node = node_load($entity_id); - if ($op == 'flag') { - // A user following their own node should not increase radioactivity. - if ($node->uid != $account->uid) { - commons_radioactivity_incident_node($node, COMMONS_RADIOACTIVITY_FLAG_NODE); - } + // A user following their own node shouldn't add to its radioactivity. + if ($node->uid == $account->uid) { + return; } - if ($op == 'unflag') { - // A user unfollowing their own node should not decrease radioactivity. - if ($node->uid != $account->uid) { - commons_radioactivity_incident_node($node, -1 * COMMONS_RADIOACTIVITY_FLAG_NODE); - } - } + commons_radioactivity_incident_node($node, COMMONS_RADIOACTIVITY_FLAG_NODE); } } + +/** + * Implements hook_flag_unflag(). + * + * Trigger radioactivity incidents when a user follows a node or group. + */ +function commons_radioactivity_flag_unflag($flag, $entity_id, $account, $flagging) { + if (in_array($flag->name, array('commons_follow_node', 'commons_follow_group'))) { + $node = node_load($entity_id); + + // A user unfollowing their own node shouldn't add to its radioactivity. + if ($node->uid == $account->uid) { + return; + } + + commons_radioactivity_incident_node($node, -1 * COMMONS_RADIOACTIVITY_FLAG_NODE); + } +} \ No newline at end of file diff --git a/modules/commons/commons_search/modules/commons_search_solr_user/commons_search_solr_user.module b/modules/commons/commons_search/modules/commons_search_solr_user/commons_search_solr_user.module index d003bfe..39a9ec1 100644 --- a/modules/commons/commons_search/modules/commons_search_solr_user/commons_search_solr_user.module +++ b/modules/commons/commons_search/modules/commons_search_solr_user/commons_search_solr_user.module @@ -86,9 +86,9 @@ function commons_search_solr_user_apachesolr_search_page_alter(&$build, $search_ $out_results = array(); if ($flagged && $flag = flag_get_flag('commons_follow_user')) { // Get the count of flagged users for a particular account. - $fl_results = db_select('flag_content', 'f') - ->fields('f', array('content_id', 'uid')) - ->condition('f.content_type', 'user', '=') + $fl_results = db_select('flagging', 'f') + ->fields('f', array('entity_id', 'uid')) + ->condition('f.entity_type','user','=') ->condition('f.uid', $user->uid, '=') ->condition('f.fid', $flag->fid, '=') ->extend('PagerDefault')->limit($limit) @@ -96,7 +96,7 @@ function commons_search_solr_user_apachesolr_search_page_alter(&$build, $search_ ->addMetaData('flagged', $flagged) ->execute(); while ($record = $fl_results->fetchAssoc()) { - $out_results[] = user_view(user_load($record['content_id']), 'search_results'); + $out_results[] = user_view(user_load($record['entity_id']), 'search_results'); } $build['pager'] = array('#theme' => 'pager'); }