Ok, just for this kind of case (normally I'd advice to put the functionality in the model or in AppController) I'd just create a parent class.
Let's call it GeneralUsers
(to late for imagination)
class GeneralUsersController extends AppController {
protected function _saveMessage(){
$this->autoRender = false;
if (!$this->RequestHandler->isPost())
$this->Session->setFlash('Error 78.', 'flash_custom_danger');
else{
if(!$this->Message->save($this->request->data))
$this->Session->setFlash('Error 985.', 'flash_custom_success');
else
$this->Session->setFlash('Success!', 'flash_custom_success');
}
$this->redirect('/');
}
}
And let's have your UsersController
and AdministratorsController
extend from that one
class UsersController extends GeneralUsersController {
public function myAction() {
$this->_saveMessage();
}
}
// and the Administrator controller one
That way the only controllers with those functions are users and administrators.
Now, if this was the case where a bunch of validations are made before saving and you want to avoid repeating those, I'd say to put that in the models. If every controller should have access to that function, then put it in the AppController. But since an "Administrator" is an "User" with more privileges (and you are not separating that functionality with the "admin_" prefix), then go with an extra parent class. Be careful with the functions though, don't let them be public
unless you want those to be accessible by url.