Support asynchronous abilities
As mentioned in multiple issues (#160, #20), ember-can currently doesn't support async abilities. This seems to be an issue for a lot of its users as it is a real use-case that permissions are evaluated with e.g. a call to an API.
This PR would support async abilities without changing the current API at all. The only thing required for it to work in templates would be ember-promise-helpers to handle the promises in the templates.
This solution is currently running in one of my projects and works pretty good. Please let me know if you are interested in this. If this is a viable solution, we could also look into changing the template helpers so they can handle the promises itself in order to drop the necessary dependency.
@anehx rebase and :up: :upside_down_face:
@RobbieTheWagner Is this a feature you'd consider?
@RobbieTheWagner Is this a feature you'd consider?
In general, I think I would support this. I think we should make the default helpers this addon ships handle both async and sync though and not require another dependency, if possible.
@RobbieTheWagner Sure, that would be possible. However, I explicitly didn't do that as we then would have to decide on what it resolves to if the promise is still pending.
IMO the least incorrect way would be to resolve to false when pending. However, this will probably pose issues when using the cannot helper.
What do you think? I'd be happy to invest some time into this!