Index: bp-themes/bp-default/members/single/groups/invites.php
===================================================================
--- bp-themes/bp-default/members/single/groups/invites.php	(révision 7250)
+++ bp-themes/bp-default/members/single/groups/invites.php	(copie de travail)
@@ -8,10 +8,10 @@
 
 			<li>
 				<div class="item-avatar">
-					<a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
+					<a href="<?php bp_group_permalink(); ?>" class="status-<?php bp_group_status();?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
 				</div>
 
-				<h4><a href="<?php bp_group_permalink(); ?>"><?php bp_group_name(); ?></a><span class="small"> - <?php printf( __( '%s members', 'buddypress' ), bp_group_total_members( false ) ); ?></span></h4>
+				<h4><a href="<?php bp_group_permalink(); ?>" class="status-<?php bp_group_status();?>"><?php bp_group_name(); ?></a><span class="small"> - <?php printf( __( '%s members', 'buddypress' ), bp_group_total_members( false ) ); ?></span></h4>
 
 				<p class="desc">
 					<?php bp_group_description_excerpt(); ?>
Index: bp-themes/bp-default/functions.php
===================================================================
--- bp-themes/bp-default/functions.php	(révision 7250)
+++ bp-themes/bp-default/functions.php	(copie de travail)
@@ -165,7 +165,8 @@
 		'close'             => __( 'Close', 'buddypress' ),
 		'view'              => __( 'View', 'buddypress' ),
 		'mark_as_fav'	    => __( 'Favorite', 'buddypress' ),
-		'remove_fav'	    => __( 'Remove Favorite', 'buddypress' )
+		'remove_fav'	    => __( 'Remove Favorite', 'buddypress' ),
+		'join_hidden_first' => __( 'You must be a member of this group to access to its content', 'buddypress' ),
 	);
 	wp_localize_script( 'dtheme-ajax-js', 'BP_DTheme', $params );
 
Index: bp-themes/bp-default/_inc/global.js
===================================================================
--- bp-themes/bp-default/_inc/global.js	(révision 7250)
+++ bp-themes/bp-default/_inc/global.js	(copie de travail)
@@ -1015,6 +1015,14 @@
 		return false;
 	} );
 
+	/** Hidden group link click on member's invite screen ***************/
+	jq( '.my-groups #group-list.invites' ).on( 'click', 'a', function() {
+		if( jq(this).hasClass( 'status-hidden' ) && jq(this).attr('href') == '#' ) {
+			alert( BP_DTheme.join_hidden_first );
+			return false;
+		}
+	});
+
 	/** Button disabling ************************************************/
 
 	jq('.pending').click(function() {
Index: bp-templates/bp-legacy/buddypress-functions.php
===================================================================
--- bp-templates/bp-legacy/buddypress-functions.php	(révision 7250)
+++ bp-templates/bp-legacy/buddypress-functions.php	(copie de travail)
@@ -238,6 +238,7 @@
 			'mark_as_fav'	    => __( 'Favorite', 'buddypress' ),
 			'remove_fav'	    => __( 'Remove Favorite', 'buddypress' ),
 			'unsaved_changes'   => __( 'Your profile has unsaved changes. If you leave the page, the changes will be lost.', 'buddypress' ),
+			'join_hidden_first' => __( 'You must be a member of this group to access to its content', 'buddypress' ),
 		);
 		wp_localize_script( $asset['handle'], 'BP_DTheme', $params );
 
Index: bp-templates/bp-legacy/buddypress/members/single/groups/invites.php
===================================================================
--- bp-templates/bp-legacy/buddypress/members/single/groups/invites.php	(révision 7250)
+++ bp-templates/bp-legacy/buddypress/members/single/groups/invites.php	(copie de travail)
@@ -8,10 +8,10 @@
 
 			<li>
 				<div class="item-avatar">
-					<a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
+					<a href="<?php bp_group_permalink(); ?>" class="status-<?php bp_group_status();?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
 				</div>
 
-				<h4><a href="<?php bp_group_permalink(); ?>"><?php bp_group_name(); ?></a><span class="small"> - <?php printf( __( '%s members', 'buddypress' ), bp_group_total_members( false ) ); ?></span></h4>
+				<h4><a href="<?php bp_group_permalink(); ?>" class="status-<?php bp_group_status();?>"><?php bp_group_name(); ?></a><span class="small"> - <?php printf( __( '%s members', 'buddypress' ), bp_group_total_members( false ) ); ?></span></h4>
 
 				<p class="desc">
 					<?php bp_group_description_excerpt(); ?>
Index: bp-templates/bp-legacy/js/buddypress.js
===================================================================
--- bp-templates/bp-legacy/js/buddypress.js	(révision 7250)
+++ bp-templates/bp-legacy/js/buddypress.js	(copie de travail)
@@ -1044,6 +1044,14 @@
 		return false;
 	} );
 
+	/** Hidden group link click on member's invite screen ***************/
+	jq( '.my-groups #group-list.invites' ).on( 'click', 'a', function() {
+		if( jq(this).hasClass( 'status-hidden' ) && jq(this).attr('href') == '#' ) {
+			alert( BP_DTheme.join_hidden_first );
+			return false;
+		}
+	});
+
 	/** Button disabling ************************************************/
 
 	jq('#buddypress').on( 'click', '.pending', function() {
Index: bp-groups/bp-groups-filters.php
===================================================================
--- bp-groups/bp-groups-filters.php	(révision 7250)
+++ bp-groups/bp-groups-filters.php	(copie de travail)
@@ -35,6 +35,7 @@
 
 add_filter( 'bp_get_group_name',                    'wp_filter_kses', 1 );
 add_filter( 'bp_get_group_permalink',               'wp_filter_kses', 1 );
+add_filter( 'bp_get_group_permalink',               'bp_groups_filter_hidden', 10, 2 );
 add_filter( 'bp_get_group_description',             'bp_groups_filter_kses', 1 );
 add_filter( 'bp_get_group_description_excerpt',     'wp_filter_kses', 1 );
 add_filter( 'groups_group_name_before_save',        'wp_filter_kses', 1 );
@@ -169,3 +170,19 @@
 	return apply_filters( 'groups_filter_bbpress_root_page_sql', 't.topic_id' );
 }
 add_filter( 'get_latest_topics_fields', 'groups_filter_forums_root_page_sql' );
+
+/**
+ * Filters group permalink to avoids 404 if an invited member clicks
+ * on an hidden group link from the his profile group invites screen
+ * 
+ * @param  string $permalink the link to the group
+ * @param  object $group the group datas
+ * @return string the group permalink
+ */
+function bp_groups_filter_hidden( $permalink, $group ) {
+
+	if( bp_is_user_groups() && bp_is_current_action( 'invites' ) && 'hidden' == $group->status && !is_super_admin() )
+		return '#';
+	
+	return $permalink;
+}
Index: bp-groups/bp-groups-template.php
===================================================================
--- bp-groups/bp-groups-template.php	(révision 7250)
+++ bp-groups/bp-groups-template.php	(copie de travail)
@@ -570,7 +570,7 @@
 		if ( empty( $group ) )
 			$group =& $groups_template->group;
 
-		return apply_filters( 'bp_get_group_permalink', trailingslashit( bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . $group->slug . '/' ) );
+		return apply_filters( 'bp_get_group_permalink', trailingslashit( bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . $group->slug . '/' ), $group );
 	}
 
 function bp_group_admin_permalink( $group = false ) {
