Redirect::action() needs to be returned to the user from a public controller method in order for the redirect to occur. You have it returning to your constructor from a protected method, but then you don't do anything to return the redirect to the user's browser.
You may have to use PHP header() instead of Redirect::action(), since you probably can't return the Redirect from a constructor.