Pro Sites - Restrict Access to BuddyPress

I have used the following code to restrict access to specific buddypress URI's. It seemed to work fine until I began testing it. Well, it fell apart pretty quickly when I tested it against accounts that expire.

Here's the code:

function prosites_hide_buddypress_pages()
{
	$userid = get_current_user_id();
	$uri = $_SERVER['REQUEST_URI'];
	$not_allowed = array("/^\/members\/$/", "/tutorials\/*/", "/friends\/*/", "/^\/groups\/$/", "/\/groups\/create\//", "/\/site-tracking\/create\//", "/\/members\/[^\/]*\/groups\//", "/\/members\/[^\/]*\/forums\//", "/\/members\/[^\/]*\/settings\//");
	foreach($not_allowed as $check)
		{
		if(preg_match($check, $uri) && !is_pro_user())
		{
			wp_redirect(home_url("/upgrade/"));
			exit;
		}
	}

}
add_action("init", "prosites_hide_buddypress_pages");

To test it, I used two different accounts.

1. Free Account - never upgraded
2. Trial Account - upgraded to Pro Level 1

To begin, the Free Account couldn't access the restricted URI's, and the Trial Account could. This was to be expected. Then, I went into the db (phpMyAdmin) and found the pro_sites table. I edited the expiration timestamp to see how this affected the Trial Account. It didn't seem to work. While the super admin dashboard showed this account as having expired, the user's account still stated it was Pro Level 1. I kept entering different days/times. It eventually shut off the account after pushing the expiration date out 3 days ... not sure why/if that was the magic number. Now, I upgraded the blog manually to Pro Level 1, but the Trial Account doesn't have access to the restricted URI's. I upgraded it to Pro Level 2, still nothing.

What am I missing in my code to make this work?

Thanks,
Chris