Question: If I am setting the Post model in my controller as follows;

```
    $this->Post->id = $id;

```

Can I access the data from Post or do I have to perform execute;

```
     $this->Post->read()

```

I'd like to perform some further validation on Post to determine the logic which is being executed. 

e.g. If the Post['submitted\_by'] = $this->Auth->user('role') == 'admin') **"pseudo code"**

Answer: 
You can't disable the back button. You can, however, remove the current document from the browser history and replace it with your desired document by using [`window.location.replace`](https://developer.mozilla.org/en/DOM/window.location#Methods). Keep in mind that you need to use AJAX in this case, since `replace` has to be called from the document you want to replace.

Instead of meddling with JavaScript and trying to mangle the user's browser, why don't you check on the server side whether the user is already logged in and redirect him to your main page?
You can try following if fits your case.

1. Stop caching pages by setting proper http no cache tricks, refer [article](https://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers).
2. After login its common you will be storing some info in session, since you wont be caching pages when user clicks on back button a fresh request will be sent to server where in processing login page request you can check, if already logged in redirect to some different page.

Hope this helps !!!