public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores) { if (e.Master.Get(Id) == null) { e.Master.Add(Id); Usuario user = e.Master.GetUsuario("admin"); if (user != null) { if (!user.GetPermiso(Id)) { user.AddPermiso(Id); } } } else { if (!IfNotExist) { return(new Throw("BDAlreadyExists", Linea, Columna)); } //errores.AddLast(new Error("Semántico", "Ya existe una base de datos con el id: "+Id+".", Linea, Columna)); } return(null); }
public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores) { Usuario usuario = e.Master.GetUsuario(Id); if (usuario != null) { if (e.Master.Get(Permiso) != null) { if (!usuario.GetPermiso(Permiso)) { usuario.AddPermiso(Permiso); } else { errores.AddLast(new Error("Semántico", "El Usuario ya tiene permisos sobre: " + Permiso + ".", Linea, Columna)); } } else { errores.AddLast(new Error("Semántico", "No existe una Base de Datos con el id: " + Permiso + ".", Linea, Columna)); } } else { return(new Throw("UserDontExists", Linea, Columna)); } //errores.AddLast(new Error("Semántico", "No existe una Usuario con el id: " + Id + ".", Linea, Columna)); return(null); }
} //Un list con objeto public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores) { if (Valor is Lista lista) { if (lista.Valores != null) { LeerArchivo(lista, e, log, errores); foreach (Expresion expr in lista.Valores) { if (expr is BloqueChison bloque) { bloque.Obj = OBJ.USER; object obj = bloque.GetValor(e, log, errores); if (obj != null) { if (obj is Usuario usuario) { Usuario old = e.MasterRollback.GetUsuario(usuario.Id); if (old == null) { e.MasterRollback.Usuarios.AddLast(usuario); } else { foreach (string permiso in usuario.Permisos) { if (!old.GetPermiso(permiso)) { old.AddPermiso(permiso); } } } } } } } } } else { return(null); //debe ser una lista } return(null); }
} //Debe ser una List (tipo bloque) public override object Ejecutar(Entorno e, bool funcion, bool ciclo, bool sw, bool tc, LinkedList <Salida> log, LinkedList <Error> errores) { if (Valor is Lista lista) { if (lista.Valores != null) { LeerArchivo(lista, e, log, errores); foreach (Expresion expr in lista.Valores) { if (expr is BloqueChison bloque) { bloque.Obj = OBJ.DATABASE; object obj = bloque.GetValor(e, log, errores); if (obj != null) { if (obj is BD bd) { if (e.MasterRollback.Get(bd.Id) == null) { e.MasterRollback.Data.AddLast(bd); Usuario admin = e.MasterRollback.GetUsuario("admin"); if (admin != null) { if (!admin.GetPermiso(bd.Id)) { admin.AddPermiso(bd.Id); } } } } } } } } } return(null); }