I'm trying to figure best practices for loading my data stores.

Here's the situation: I have a grid view, backed by a store with a rest proxy. The data in the grid is protected, so the user must be logged into the application before the store can be loaded. The login functionality is part of this Ext app, so the app will be loaded (including finding and autoloading stores) when the user is not logged in. If the user is looking at the grid page, then I know they are logged in. Whenever they load the grid, I want the store which feeds that grid to be loaded. So, it makes sense to me to have the store set autoLoad: true.

In my app.js, I have something like:
Code:
...
Ext.application({
...
 controllers:[
        'MyCoolGrid,
 ],
...
and inside MyCoolGrid controller I have very little code:

Code:
Ext.define('AA.controller.MyGrid', {
    extend:'Ext.app.Controller',
    stores:['MyGridStore'],
    models:['MyModel'],
    views: ['MyGrid'],
});
and inside MyGridStore I have autoLoad: true.

My problem is that when the application launches, it immediately autoloads the store, even though the user is not yet logged in. What I'd like to happen is have the store load when the grid is rendered I understand this isn't the functionality offered by autoLoad, I'm curious if there is a convenient way to do this that is analogous to autoLoad.

Because I don't know of a better way to do this, I ended up altering my controller to load the grid's store onrender:
Code:
Ext.define('AA.controller.MyGrid', {
    extend:'Ext.app.Controller',
    stores:['MyGridStore'],
    models:['MyModel'],
    views: ['MyGrid'],



    refs:[
        {ref:'myGrid', selector:'myGrid'}
    ],


    init:function () {
        this.control({
            myGrid:{
                afterrender:function () {
                    this.getMyGrid().getStore().load();
                }
            }
        });
    }
});
This isn't all that atrocious, but I'll need this in literally every one of my (numerous) controllers that load protected data. It would be really neat if I could have an option that effectively "auto loads" when views that my controller is responsible for are loaded.

Is there a magical option I'm missing? Is there a cleaner approach than what I have done?