Quiero usar CanCan para manejar mis permisos. Mi sitio tiene muchos niveles de permisos diferentes, y la mayoría de ellos tiene en cuenta el contexto. Por ejemplo, aquí están las relaciones en mis 3 modelos principales:Autorización de contexto con el uso de CanCan
class User < ActiveRecord::Base
has_many :league_relations
has_many :leagues, :through => :league_relations
end
class League < ActiveRecord::Base
has_many :league_relations
has_many :users, :through => :league_relations
end
class LeagueRelation < ActiveRecord::Base
belongs_to :user
belongs_to :league
end
Nota, LeagueRelations es un recurso anidado de ligas. Lo que quiero hacer es permitir que un usuario modifique las ligas y medir la autorización de cada usuario a partir de los datos almacenados en league_relation. Entonces me gustaría que un usuario modifique la relación de liga, basándose solo en los datos almacenados en el modelo de usuario.
Para ser sucinto: básicamente quiero que LeagueRelations se use para autorizar acciones de la Liga y que los Usuarios se usen para autorizar acciones de LeagueRelations. es decir, league_relation.owner = true para eliminar una liga, pero propietario.usuario? debe ser verdadero para eliminar una LeagueRelation. ¿Cómo puedo autorizar según los atributos de league_relation cuando está dentro del controlador de la liga y autorizo otras acciones en otros controladores en otros modelos? Por favor, deje un comentario si necesita más aclaraciones.
Gracias.