Mostly I just stole this from ReviewerController without much consideration.  I'll look into CanCan further, but I have a feeling it'll take some custom crap to make their magic work for our type-cast "asset" object.