I'm heavily customizing Share and have a use case where I need to be able to have fine-grained control over the list of actions available for specific nodes based on various criteria. The list of actions available for any given node relates directly to the status/state of the node, not the user viewing it, so permissions don't really seem appropriate - any user with access to the node should be able to perform only the functions available for that node in it's current state.
In some cases, nodes may be granted ALL actions upon creation. In others, a subset of actions may be available initially, with others added upon completion of specific workflow processes or upon other events.
My thought for supporting this is to create a series of custom aspects that track 1:1 with the set of available actions. I would then use a variety of strategies to apply/remove the aspects when appropriate, thereby adding and removing access to the aspect's partner action.
As I've only been working with Share for a few weeks, I thought I'd post this here to solicit feedback from those with more experience/insight.
Does this sound like a reasonable approach? Or is there some simpler/clearner/better mechanism I should be looking at?
Thanks!
-Patrick