igmarin
7/23/2014 - 10:43 PM

Example Ability

Example Ability

class Ability
  include CanCan::Ability

  def initialize(user)
    # Mis Modelos: User Publicacion Imagen Galeria Event Departamento Comunicado Ckeditor
    user ||= User.new
    #El rol de administrador General
    if user.role? :admin
      can :manage, :all
    end
    if user.role? :estudios
      can :manage, [PaginaLey, Ley, ClasificacionEstudio, ContenidoEstudio, Codigo, Reglamento, Municipio, Libro, Tema, ArchivoDecreto] #Esto pertenece a Diario de debates para la modificacion de Diario, Iniciativa, Dictamentes, Decretos, Votaciones Nominales, Estadisticas Parlamentarias
    end
    #Este rol es el rol de comunicación social, el cual tambien administra usuarios pero solo para crear usuarios con el tipo medio
    if user.role? :medio
      can :read, [Publicacion, Audio]
    end
    if user.role? :acceso
      can :manage, [AccesoLink, AccesoLey, ClasificacionAcceso, AccesoOrganismo, FechaActualizacion] #Esto pertenece a Diario de debates para la modificacion de Diario, Iniciativa, Dictamentes, Decretos, Votaciones Nominales, Estadisticas Parlamentarias
    end
    if user.role? :administracion
      can :manage, [Event, Periodo, Sesion]
    end
    if user.role? :secretaria
      can :manage, [Partido, Diputado, Salida]#Diputados y Eventos Fuera
    end
    if user.role? :apoyo
      can :manage, [Bitacora, Comision, ComisionesDiputado]#Comisiones, Sesión Ordinaria, Mesa directiva, Ley Vigente
    end
    if user.role? :apoyo_bitacora
      can :manage, [Bitacora]#Comisiones, Sesión Ordinaria, Mesa directiva, Ley Vigente
    end
    if user.role? :diario
      can :manage, [Votacion, Iniciativa, Dictamen, Acuerdo, Estadistica, Asunto, Decreto, Ejercicio, EjercicioFiscal, Intervencion, Instrumento] #Esto pertenece a Diario de debates para la modificacion de Diario, Iniciativa, Dictamentes, Decretos, Votaciones Nominales, Estadisticas Parlamentarias
    end
    if user.role? :contenidos
      can :manage, [CategoriaSitio, Sitio, Foto, RecorridoEsto]  # es el contenido estatico sobre el congreso, historia, sitios, etc.
    end
    if user.role? :sitios
      can :manage, [CategoriaSitio, Sitio]  # es el contenido estatico sobre el congreso, historia, sitios, etc.
    end
    if user.role? :finanzas
      can :manage, [Finanza] #Esto es Finanzas Publicas
    end
    if user.role? :desarrollo
      can :manage, [Coordinacion] #Esto pertenece al Organigrama del Congreso.
    end
    if user.role? :comunicacion
      can :manage, [Audio, Imagen, Publicacion, Galeria, Comunicado, ResumenInformativo, Registro, Noticia, User, Medio]
    end
    #Este se encuentra relacionado con comunicación y es el acceso a medios
    if user.role? :comunicacion_boletines
      can :manage, [Comunicado] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_sintesis
      can :manage, [ResumenInformativo] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_galeria_visitas
      can :manage, [Visita, ImagenVisita] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_galerias
      can :manage, [Galeria, Imagen] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_noticias
      can :manage, [Noticia] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_medios
      can :manage, [Medio] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_publicidad
      can :manage, [Publicacion] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_spots
      can :manage, [Audio] #Esto es para comunicacion con sus boletines
    end
    if user.role? :comunicacion_usuarios_medios
      can :manage, [Audio, User] #Esto es para comunicacion con sus boletines
    end
    if user.role? :servicios_agenda
      can :manage, [Event]
    end
    if user.role? :servicios_diputado
      can :manage, [Partido, Diputado]#Diputados y Eventos Fuera
    end
    if user.role? :servicios_fuera
      can :manage, [Salida]#Diputados y Eventos Fuera
    end
    if user.role? :diario_de_debates
      can :manage, [Periodo, Sesion]
    end
    if user.role? :iniciativas
      can :manage, [Iniciativa]
    end
    if user.role? :diario_intervenciones
      can :manage, [Intervencion]
    end
    if user.role? :diario_votaciones
      can :manage, [Dictamen, Votacion]
    end
    if user.role? :diario_estadisticas
      can :manage, [Estadistica]
    end
    if user.role? :diario_decretos
        can :manage, [Decreto]
    end
    if user.role? :lo_ultimo
        can :manage, [Ultimo]
    end
    if user.role? :contabilidad
        can :manage, [Armonizacion]
    end
      #can :manage, [Votacion, Iniciativa, Dictamen, Acuerdo, Estadistica, Asunto, Decreto, Ejercicio, EjercicioFiscal, Intervencion] #Esto pertenece a Diario de debates para la modificacion de Diario, Iniciativa, Dictamentes, Decretos, Votaciones Nominales, Estadisticas Parlamentarias
    can :read, :all
  end
end