Class: Sivel2Gen::Ability
- Inherits:
-
Msip::Ability
- Object
- Msip::Ability
- Sivel2Gen::Ability
- Includes:
- CanCan::Ability
- Defined in:
- app/models/sivel2_gen/ability.rb
Constant Summary collapse
- ROLADMIN =
1
- ROLOPERADOR =
5
- ROLES =
Msip::Ability::ROLES
- GRUPO_ANALISTA_CASOS =
20
- GRUPO_OBSERVADOR_CASOS =
21
- GRUPO_OBSERVADOR_PARTE_CASOS =
22
- ROLES_CA =
[ "Administrar casos, personas, organizaciones sociales " + "Administrar plantillas, formularios y encuestas. " + "Crear copias de respaldo cifradas y ver bitácoras. " + "Administrar usuarios y tablas básicas. ", #1 "", #2 "", #3 "", #4 "Puede ver reportes, conteos y generar plantillas. "+ "Si es del grupo ANALISTA puede administrar organizaciones sociales, personas y caso. " + "O de lo contrario si es del grupo OBSERVADOR podrá consultar toda la información pero sólo podrá cambiar etiquetas de casos. ", #5 "O de lo contrario si es del grupo OBSERVADOR DE PARTE podrá consultar la información sólo de algunos casos resultantes de un filtro particular.", #5 "", #6 "" #7 ]
- BASICAS_PROPIAS =
[ ['Sivel2Gen', 'actividadoficio'], ['Sivel2Gen', 'antecedente'], ['Sivel2Gen', 'categoria'], ['Sivel2Gen', 'contextovictima'], ['Sivel2Gen', 'contexto'], ['Sivel2Gen', 'escolaridad'], ['Sivel2Gen', 'estadocivil'], ['Sivel2Gen', 'filiacion'], ['Sivel2Gen', 'frontera'], ['Sivel2Gen', 'iglesia'], ['Sivel2Gen', 'intervalo'], ['Sivel2Gen', 'maternidad'], ['Sivel2Gen', 'organizacion'], ['Sivel2Gen', 'pconsolidado'], ['Sivel2Gen', 'presponsable'], ['Sivel2Gen', 'profesion'], ['Sivel2Gen', 'rangoedad'], ['Sivel2Gen', 'region'], ['Sivel2Gen', 'resagresion'], ['Sivel2Gen', 'sectorsocial'], ['Sivel2Gen', 'supracategoria'], ['Sivel2Gen', 'tviolencia'], ['Sivel2Gen', 'vinculoestado'] ]
- BASICAS_ID_NOAUTO =
Tablas básicas cuyo id no es autoincremental
[ ['Sivel2Gen', 'categoria'], ['Sivel2Gen', 'tviolencia'] ]
- NOBASICAS_INDSEQID =
Tablas no básicas pero que tienen índice
[ ['sivel2_gen', 'caso'], ['sivel2_gen', 'actocolectivo'], ['sivel2_gen', 'caso_categoria_presponsable'], ['Sivel2Gen', 'caso_fotra'], ['Sivel2Gen', 'caso_fuenteprensa'], ['sivel2_gen', 'caso_solicitud'], ['sivel2_gen', 'combatiente'], #['Sivel2Gen', 'victima'], ['sivel2_gen', 'victimacolectiva'] ]
- BASICAS_PRIO =
Tablas básicas que deben volcarse primero –por ser requeridas por otras básicas
[ ['Sivel2Gen', 'pconsolidado'], ['Sivel2Gen', 'tviolencia'], ['Sivel2Gen', 'supracategoria'], ['Sivel2Gen', 'intervalo'], ['Sivel2Gen', 'filiacion'], ['Sivel2Gen', 'organizacion'], ['Sivel2Gen', 'sectorsocial'], ['Sivel2Gen', 'vinculoestado'], ['Sivel2Gen', 'contextovictima'] ]
- CAMPOS_PLANTILLAS_PROPIAS =
if ActiveRecord::Base.connection.data_source_exists?(‘sivel2_gen_caso’) Sivel2Gen::Consexpcaso.crea_consexpcaso(nil) end
{ 'Caso' => { campos: [ :caso_id, :fecha, :memo, :ubicaciones, :victimas, :presponsables, :tipificacion, :titulo, :hora, :duracion, :grconfiabilidad, :gresclarecimiento, :grimpunidad, :grinformacion, :bienes, :intervalo_id, :created_at, :updated_at ], controlador: 'Sivel2Gen::CasosController', ruta: '/casos' }, 'Victima' => { campos: ActiveRecord::Base.connection.data_source_exists?( 'sivel2_gen_victima') ? (Sivel2Gen::Victima.column_names + [ :departamento_caso, :fecha_caso, :municipio_caso, :nombre, :contextovictima, :profesion, :presponsables_caso, :presponsables_caso_ids, :rot1, :rot2, :rot3, :rot4, :rot5, :rot6, :rot7, :rot8, :rot9, :rot10, :rot11, :rot12, :rot13, :rot14, :rot15, :rot16, :rot17, :rot18, :rot19, :rot20, :rot21, :rot22, :rot23, :rot24, :rot25, :rot26, :rot27, :rot28, :rot29, :rot30, :rot31, :rot32, :rot33, :rot34, :rot35, :rot36, :rot37, :rot38, :rot39, :sexo, :trimestre_caso, :ubicacion_caso, ]) : [], controlador: 'Sivel2Gen::CasosController', ruta: '/casos' } }
Class Method Summary collapse
- .derechos ⇒ Object
-
.initialize_sivel2_gen(habilidad, usuario = nil) ⇒ Object
Establece autorizaciones con CanCanCan.
- .organizacion_responsable ⇒ Object
Instance Method Summary collapse
- #basicas_id_noauto ⇒ Object
- #campos_plantillas ⇒ Object
-
#initialize_sivel2_gen(usuario = nil) ⇒ Object
def initialize_sivel2_gen.
-
#nobasicas_indice_seq_con_id ⇒ Object
Tablas no básicas pero que tienen índice con secuencia id_seq.
- #tablasbasicas ⇒ Object
- #tablasbasicas_prio ⇒ Object
Class Method Details
.derechos ⇒ Object
107 108 109 |
# File 'app/models/sivel2_gen/ability.rb', line 107 def self.derechos 'Creative Commons Atribución 2.5 Colombia. http://creativecommons.org/licenses/by/2.5/co/' end |
.initialize_sivel2_gen(habilidad, usuario = nil) ⇒ Object
Establece autorizaciones con CanCanCan
213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 |
# File 'app/models/sivel2_gen/ability.rb', line 213 def self.initialize_sivel2_gen(habilidad, usuario = nil) # Sin autenticación puede consultarse información geográfica habilidad.can :read, [Msip::Pais, Msip::Departamento, Msip::Municipio, Msip::Centropoblado, Msip::Ubicacionpre] # Hacer conteos habilidad.can :cuenta, Sivel2Gen::Caso # La consulta web es publica dependiendo de if !usuario && Rails.application.config.x.sivel2_consulta_web_publica habilidad.can :read, Msip::Ubicacionpre habilidad.can :buscar, Sivel2Gen::Caso habilidad.can :contar, Sivel2Gen::Caso habilidad.can :lista, Sivel2Gen::Caso habilidad.can [:read, :filtra_por_tviolencia], Sivel2Gen::Categoria # API público # Mostrar un caso con casos/101 # Mostrar un caso en XML - HTML con casos/101.xml # Mostrar un caso en XML para descarga casos/101.xrlat habilidad.can [:read,:show], Sivel2Gen::Caso #Mostrar registros limitados habilidad.can :index4000, Sivel2Gen::Caso end if !usuario || usuario.fechadeshabilitacion return end # Los siguientes son para todo autenticado habilidad.can :buscar, Sivel2Gen::Caso habilidad.can :contar, Sivel2Gen::Caso habilidad.can :exportaCSV, Sivel2Gen::Caso habilidad.can :lista, Sivel2Gen::Caso habilidad.can :reportar, Sivel2Gen::Caso habilidad.can [:read, :update], Mr519Gen::Encuestausuario habilidad.can :read, Msip::Orgsocial # Conteos habilidad.can :victimizaciones, Sivel2Gen::Caso habilidad.can :filtra_por_tviolencia, Sivel2Gen::Categoria habilidad.can :genvic, Sivel2Gen::Caso habilidad.can :personas, Sivel2Gen::Caso habilidad.can :descarga_anexo, Msip::Anexo habilidad.can :mostrar_portada, Msip::Anexo habilidad.can :abre_anexo, Msip::Anexo habilidad.can :manage, Sivel2Gen::AnexoCaso habilidad.can :manage, Msip::PersonaTrelacion habilidad.can :contar, Msip::Ubicacion habilidad.can :mundep, Msip::Ubicacionpre habilidad.can :manage, Sivel2Gen::CasoEtiqueta habilidad.can :manage, Sivel2Gen::CasoFuenteprensa habilidad.can :manage, Sivel2Gen::CasoFotra habilidad.can :manage, Sivel2Gen::CasoPresponsable habilidad.can :manage, Sivel2Gen::CasoSolicitud habilidad.can :nuevo, Sivel2Gen::Combatiente habilidad.can :nuevo, Sivel2Gen::Presponsable habilidad.can :manage, Sivel2Gen::Victima habilidad.can :manage, Sivel2Gen::Victimacolectiva if usuario && usuario.rol then habilidad.can :nuevo, Msip::Ubicacion case usuario.rol when Ability::ROLANALI habilidad.can :read, Heb412Gen::Doc habilidad.can :read, Heb412Gen::Plantilladoc habilidad.can :read, Heb412Gen::Plantillahcm habilidad.can :read, Heb412Gen::Plantillahcr habilidad.can :index, Sivel2Gen::Victima if usuario.grupo && usuario.grupo.pluck(:id).include?(GRUPO_ANALISTA_CASOS) habilidad.can [:read, :new, :edit, :update, :create], Msip::Orgsocial habilidad.can :create, Msip::Bitacora, usuario: { id: usuario.id } habilidad.can :read, Msip::Bitacora, usuario: { id: usuario.id } habilidad.can :manage, Msip::Persona habilidad.can :manage, Msip::Grupoper habilidad.can :manage, Sivel2Gen::Acto habilidad.can :manage, Sivel2Gen::Actocolectivo habilidad.can [ :read, :new, :edit, :update, :create, :importa, :importarrelatos, :errores_importacion, :nuevo, :nueva, :destroy], Sivel2Gen::Caso habilidad.cannot :solocambiaretiquetas, Sivel2Gen::Caso habilidad.can [:refresca, :validar], Sivel2Gen::Caso habilidad.can :read, Sivel2Gen::Victima else habilidad.can :read, Msip::Orgsocial habilidad.can :read, Msip::Bitacora, usuario: { id: usuario.id } habilidad.can :read, Msip::Persona habilidad.can :read, Msip::Grupoper habilidad.can :read, Sivel2Gen::Acto habilidad.can :read, Sivel2Gen::Actocolectivo habilidad.cannot [:new, :create], Sivel2Gen::Caso habilidad.can :read, Sivel2Gen::Victima if usuario.grupo && usuario.grupo.pluck(:id). include?(GRUPO_OBSERVADOR_PARTE_CASOS) dicc_filtro = {} if usuario.filtrodepartamento_ids.count > 0 dicc_filtro[:ubicacion]={ departamento_id: usuario.filtrodepartamento_ids } end fini = Sivel2Gen::Caso.all.minimum(:fecha) ? Sivel2Gen::Caso.all.minimum(:fecha) : Date.new(1970,01,01) if usuario.observadorffechaini fini = usuario.observadorffechaini end ffin = Date.today() if usuario.observadorffechafin ffin = usuario.observadorffechafin end dicc_filtro[:fecha]=(fini..ffin) habilidad.can [:show, :read], Sivel2Gen::Caso, dicc_filtro else #Suponemos que es Observador de todo habilidad.can [:read, :edit, :solocambiaretiquetas, :update], Sivel2Gen::Caso end end when Ability::ROLADMIN habilidad.can :manage, Heb412Gen::Doc habilidad.can :manage, Heb412Gen::Plantilladoc habilidad.can :manage, Heb412Gen::Plantillahcm habilidad.can :manage, Heb412Gen::Plantillahcr habilidad.can :manage, Mr519Gen::Formulario habilidad.can :manage, Mr519Gen::Encuestausuario habilidad.can :manage, Msip::Orgsocial habilidad.can :manage, Msip::Bitacora habilidad.can :manage, Msip::Persona habilidad.can :manage, Msip::Grupoper habilidad.can :manage, Msip::Respaldo7z habilidad.can :manage, Msip::Ubicacionpre habilidad.can :manage, Sivel2Gen::Acto habilidad.can :manage, Sivel2Gen::Actocolectivo habilidad.can :manage, Sivel2Gen::Caso habilidad.cannot :solocambiaretiquetas, Sivel2Gen::Caso habilidad.can :read, Sivel2Gen::Victima habilidad.can :manage, Usuario habilidad.can :manage, :tablasbasicas habilidad.tablasbasicas.each do |t| c = Ability.tb_clase(t) habilidad.can :manage, c end end # case end # if end |
.organizacion_responsable ⇒ Object
110 111 112 |
# File 'app/models/sivel2_gen/ability.rb', line 110 def self.organizacion_responsable 'Banco de Datos del CINEP' end |
Instance Method Details
#basicas_id_noauto ⇒ Object
69 70 71 |
# File 'app/models/sivel2_gen/ability.rb', line 69 def basicas_id_noauto Msip::Ability::BASICAS_ID_NOAUTO + BASICAS_ID_NOAUTO end |
#campos_plantillas ⇒ Object
204 205 206 207 208 209 |
# File 'app/models/sivel2_gen/ability.rb', line 204 def campos_plantillas n = Heb412Gen::Ability::CAMPOS_PLANTILLAS_PROPIAS. clone.merge(CAMPOS_PLANTILLAS_PROPIAS) #byebug return n end |
#initialize_sivel2_gen(usuario = nil) ⇒ Object
def initialize_sivel2_gen
381 382 383 |
# File 'app/models/sivel2_gen/ability.rb', line 381 def initialize_sivel2_gen(usuario = nil) Sivel2Gen::Ability.initialize_sivel2_gen(self, usuario) end |
#nobasicas_indice_seq_con_id ⇒ Object
Tablas no básicas pero que tienen índice con secuencia id_seq
87 88 89 |
# File 'app/models/sivel2_gen/ability.rb', line 87 def nobasicas_indice_seq_con_id Msip::Ability::NOBASICAS_INDSEQID + NOBASICAS_INDSEQID end |
#tablasbasicas ⇒ Object
57 58 59 60 61 |
# File 'app/models/sivel2_gen/ability.rb', line 57 def tablasbasicas r = (Msip::Ability::BASICAS_PROPIAS - [['Msip', 'oficina']]) + BASICAS_PROPIAS return r end |
#tablasbasicas_prio ⇒ Object
104 105 106 |
# File 'app/models/sivel2_gen/ability.rb', line 104 def tablasbasicas_prio Msip::Ability::BASICAS_PRIO + BASICAS_PRIO - [['Msip', 'grupo']] end |