def post(self,*args, **kw): """Crea un nuevo rol y lo guarda en la base de datos""" p = Rol() rm = RolManager() params = kw if not('id_proyecto' in kw): flash(('Direccion No valida'), 'error') raise redirect("/index") if params['id_proyecto'] != '-1': if not(Secure().FiltrarByProyecto(int(kw['id_proyecto']),'creacion_rol_proyecto')): flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error') raise redirect("/index") p, navegacion = self.getNavegacionFromIdProyecto(params['id_proyecto']) else: if not(Secure().FiltrarBySistema('creacion_rol_sistema')): flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES'), 'error') raise redirect("/index") navegacion = self.getNavegacionSistema() if params['tipo']!="cancelar": descripcion = params['descripcion'] nombre = params['nombre'] tipo = int(params['tipo']) self.tipo_rol=int(params['tipo']) try: per = params['permisos'] except: flash(("No se puede crear un rol sin permisos!"), 'error') raise redirect("/rol/new", id_proyecto=kw['id_proyecto'], tipo_rol=kw['tipo']) permisos = rm.getListaPermisos(per) rm.agregar(nombre, descripcion, tipo, permisos) if tipo == 1: raise redirect('/rol', id_proyecto=kw['id_proyecto']) else: raise redirect('/rol') else: try: admin_sistema = navegacion['admin_sistema'] if admin_sistema: raise redirect ('/rol') except: raise redirect('/rol', id_proyecto=kw['id_proyecto'])