def _do_get_provider_count_and_objs(self, id_fase=None, id_lb=None, **kw): """ Recupera las lineas bases de una fase, o aquellas para las que tenemos algún permiso. """ if id_lb: lb = LB.por_id(id_lb) return 1, [lb] count, lista = super(LineaBaseTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] if id_fase: id_fase = int(id_fase) ap = AlgunPermiso(tipo='Fase', id_fase=id_fase).is_met(request.environ) if ap: lbs = Fase.por_id(id_fase).lineas_bases() return len(lbs), lbs for lb in lista: if AlgunPermiso(tipo=u'Fase').is_met(request.environ): filtrados.append(lb) return len(filtrados), filtrados
def __call__(self, environ, start_response): """Invoke the Controller""" # TGController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] request.identity = request.environ.get('repoze.who.identity') # para acceder mas rapido a este componente request.credentials = request.environ.get('repoze.what.credentials') request.puede_gestion_conf = False request.puede_desarrollo = False if request.credentials: username = request.credentials["repoze.what.userid"] usuario = model.Usuario.by_user_name(username) request.puede_proyecto = False request.puede_rol = False request.puede_fase = False request.puede_ti = False request.puede_busqueda = False if AlgunPermiso(tipo="Rol").is_met(request.environ): request.puede_rol = True perms = request.credentials["permissions"] if perms.count("crear proyecto") or \ perms.count("modificar proyecto") or \ perms.count("eliminar proyecto"): request.puede_proyecto = True if perms.count("modificar fase"): request.puede_fase = True if perms.count("crear tipo item") or \ perms.count("redefinir tipo item"): request.puede_ti = True if AlgunPermiso(tipo="Usuario").is_met(request.environ): request.puede_busqueda = True if AlgunPermiso(tipo="Tipo").is_met(request.environ): request.puede_desarrollo = True if has_any_permission(u"crear lb", u"abrir-cerrar lb", u"consultar lb").is_met(request.environ): request.puede_gestion_conf = True tmpl_context.identity = request.identity # session['atras'] = session['actual'] # session['actual'] = session['adelante'] session.save() return TGController.__call__(self, environ, start_response)
def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw): """ Se muestra la lista de usuarios que no tienen algun rol de proyecto para el proyecto en cuestion. """ count, lista = super(NoMiembrosProyectoTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] app = AlgunPermiso(tipo="Proyecto", id_proyecto=id_proyecto) for u in lista: app.id_usuario = u.id_usuario if not app.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw): """ Se muestra la lista de usuarios que no tienen algun rol de proyecto para el proyecto en cuestion. """ count, lista = super(NoMiembrosProyectoTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] app = AlgunPermiso(tipo="Proyecto", id_proyecto=id_proyecto) for u in lista: app.id_usuario = u.id_usuario if not app.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_fase=None, **kw): """ Se muestran a los usuarios que no tienen por lo menos un rol de tipo fase para la fase en cuestión. """ count, lista = super(NoMiembrosFaseTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] fase = Fase.por_id(id_fase) apf = AlgunPermiso(tipo="Fase", id_fase=fase.id_fase) for u in lista: apf.id_usuario = u.id_usuario if not apf.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_version=None, **kw): """ Recupera las relaciones de la versión del ítem indicado. """ count, lista = super(RelacionTableFiller, self).\ _do_get_provider_count_and_objs(**kw) tipo = "a-s" if (UrlParser.parse_nombre(request.url, "relaciones_ph")): tipo = "p-h" filtrados = [] if id_version: p_item = PropiedadItem.por_id(id_version) item = Item.por_id(p_item.id_item_actual) #ver este permiso ap = AlgunPermiso(tipo='Fase', id_fase=item.id_fase).is_met(request.environ) if ap: for rpi in p_item.relaciones: if (rpi.relacion in lista) and \ rpi.relacion.tipo == Relacion.tipo_relaciones[tipo]: filtrados.append(rpi.relacion) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_fase=None, **kw): """ Se muestran a los usuarios que no tienen por lo menos un rol de tipo fase para la fase en cuestión. """ count, lista = super(NoMiembrosFaseTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] fase = Fase.por_id(id_fase) apf = AlgunPermiso(tipo="Fase", id_fase=fase.id_fase) for u in lista: apf.id_usuario = u.id_usuario if not apf.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw): """ Se muestran los usuarios que no tienen por lo menos un rol de tipo Tipo Item para el tipo de item en cuestión. """ count, lista = super(NoMiembrosTipoTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] tipo = TipoItem.por_id(id_tipo_item) apti = AlgunPermiso(tipo="Tipo", id_tipo_item=tipo.id_tipo_item) for u in lista: apti.id_usuario = u.id_usuario if not apti.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_proyecto=None, id_fase=None, **kw): """ Retorna las fases del proyecto en cuestión """ if id_fase: fase = Fase.por_id(id_fase) return 1, [fase] count, lista = super(FaseTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] if id_proyecto: id_proyecto = int(id_proyecto) #ap = AlgunPermiso(tipo='Fase', id_proyecto=id_proyecto).is_met(request.environ) for f in lista: if f.id_proyecto == id_proyecto: if AlgunPermiso(tipo='Fase', id_fase=f.id_fase).is_met(request.environ): filtrados.append(f) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw): """ Se muestra la lista de atributos del tipo de ítem si se tiene un permiso necesario. """ if AlgunPermiso(tipo="Tipo", id_tipo_item=id_tipo_item).is_met(request.environ): count, lista = super(AtributosPorTipoItemTableFiller, self)._do_get_provider_count_and_objs(**kw) id_tipo = UrlParser.parse_id(request.url, "tipositems") ti = TipoItem.por_id(id_tipo) pks = [] actual = ti while actual: for attr in actual.atributos: pks.append(attr.id_atributos_por_tipo_item) actual = TipoItem.por_id(actual.id_padre) filtrados = [] for attr in lista: if attr.id_atributos_por_tipo_item in pks: filtrados.append(attr) return len(filtrados), filtrados #query = DBSession.query(AtributosPorTipoItem) \ # .filter(AtributosPorTipoItem \ # .id_atributos_por_tipo_item.in_(pks)) #return query.count(), query.all() return 0, []
def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw): """ Se muestran los usuarios que no tienen por lo menos un rol de tipo Tipo Item para el tipo de item en cuestión. """ count, lista = super(NoMiembrosTipoTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] tipo = TipoItem.por_id(id_tipo_item) apti = AlgunPermiso(tipo="Tipo", id_tipo_item=tipo.id_tipo_item) for u in lista: apti.id_usuario = u.id_usuario if not apti.is_met(request.environ): filtrados.append(u) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_fase=None, id_item=None, **kw): """ Recupera los ítems para los cuales tenemos algún permiso. Si el usuario se encuentra en una fase, retorna solo los ítems que pertenecen a dicha fase. """ if id_item: item = Item.por_id(id_item) return 1, [item] count, lista = super(ItemTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] ''' if id_fase: id_fase = int(id_fase) ''' for it in lista: if (it.id_fase == id_fase and \ AlgunPermiso(tipo= "Tipo", id_tipo_item=it.id_tipo_item).is_met(request.environ)): filtrados.append(it) return len(filtrados), filtrados '''
def _do_get_provider_count_and_objs(self, id_fase=None, **kw): """ Se muestra la lista de roles para este proyecto. """ filtrados = [] if AlgunPermiso(tipo="Fase", id_fase=id_fase).is_met(request.environ): count, lista = super(RolesFaseTableFiller, self)._do_get_provider_count_and_objs(**kw) for rol in lista: if rol.tipo == u"Fase" and rol.id_fase == id_fase: filtrados.append(rol) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, **kw): """ Se muestra la lista de rol si se tiene un permiso necesario. Caso contrario le muestra sus roles. """ if AlgunPermiso(tipo="Sistema").is_met(request.environ): count, lista = super(RolTableFiller, self)._do_get_provider_count_and_objs(**kw) filtrados = [] for rol in lista: if rol.tipo == u"Sistema": filtrados.append(rol) return len(filtrados), filtrados return 0, []
def _do_get_provider_count_and_objs(self, **kw): """ Retorna la Lista de los proyectos en los cuales el usuario es miembro """ count, lista = super(ProyectosDesarrolloTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] for p in lista: if (AlgunPermiso(tipo= "Tipo", id_proyecto=p.id_proyecto).is_met(request.environ) and\ p.estado == u"Iniciado"): filtrados.append(p) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_tipo_item=None, **kw): """ Se muestra la lista de roles para este tipo de ítem. """ filtrados = [] if AlgunPermiso(tipo="Tipo", id_tipo_item=id_tipo_item).is_met(request.environ): count, lista = super(RolesTipoTableFiller, self)._do_get_provider_count_and_objs(**kw) for rol in lista: if rol.tipo.find( "Tipo") >= 0 and rol.id_tipo_item == id_tipo_item: filtrados.append(rol) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw): """ Retorna la Lista de los proyectos en los cuales el usuario es miembro """ if id_proyecto: proy = Proyecto.por_id(id_proyecto) return 1, [proy] count, lista = super(ProyectosFaseTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] for p in lista: if AlgunPermiso(tipo="Fase", id_proyecto=p.id_proyecto).is_met(request.environ): filtrados.append(p) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_proyecto=None, **kw): """ Retorna las fases del proyecto en cuestión """ count, lista = super(FaseDesarrolloTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] if id_proyecto: id_proyecto = int(id_proyecto) #se listan las fases en la que se es miembro for f in lista: if (f.id_proyecto == id_proyecto and \ AlgunPermiso(tipo= "Tipo", id_fase=f.id_fase).is_met(request.environ)): filtrados.append(f) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_version=None, **kw): """ Recupera los atributos de la versión del ítem indicado. """ count, lista = super(AtributoItemTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] if id_version: p_item = PropiedadItem.por_id(id_version) item = Item.por_id(p_item.id_item_actual) ap = AlgunPermiso(tipo='Fase', id_fase=item.id_fase).is_met(request.environ) if ap: for attr_por_item in p_item.atributos: if attr_por_item in lista: filtrados.append(attr_por_item) return len(filtrados), filtrados
def _do_get_provider_count_and_objs(self, id_fase=None, id_tipo=None, **kw): """ Se muestra la lista de tipos de item para la fase en cuestión """ if id_tipo: ti = TipoItem.por_id(id_tipo) return 1, [ti] count, lista = super(TipoItemTableFiller, self).\ _do_get_provider_count_and_objs(**kw) filtrados = [] if id_fase: id_fase = int(id_fase) for t in lista: if t.id_fase == id_fase: if AlgunPermiso(tipo='Tipo', id_tipo_item=t.id_tipo_item).is_met(request.environ): filtrados.append(t) return len(filtrados), filtrados