// GET: DriveLetterInfo public ActionResult Index(int?idDli) { var db = new tabblesEntities(); bool utenteEsiste = Logic.auth(db, Session /*, out bool isAdmin, out string username*/, out int?idOrg, out bool?isAdmin, out int?idUtente); if (!utenteEsiste /* TODO oppure esiste ma non ha i permessi su questa struttura */) { return(Redirect(Url.Action("Index", "Login"))); } DriveLetterInfoModel mod; if (idDli == null) { mod = creaModelloDaRequestForm(Request, Session, db); } else { // verifica che hai i permessi su quel drive letter info, cioè sia la tua org var haipermesi = (from dli in db.driveLetterInfoForTabblesWeb where dli.idOrg == idOrg.Value where idDli.Value == dli.id select dli).Any(); if (!haipermesi) { return(Redirect(Url.Action("Index", "Login"))); } mod = creaModelloDaDb(idDli.Value, Request, Session); } return(View("DriveLetterInfo", mod)); }
static ControlPanelModel faiQuery(tabblesEntities db, int?idOrg) { var dlis = (from di in db.driveLetterInfoForTabblesWeb where di.idOrg == idOrg.Value select new DriveLetterInfo { allowDownload = di.allowDowload, convertAndroid = di.convertAndroid, convertIos = di.convertIos, convertLinux = di.convertLinux, convertMac = di.convertMac, letter = di.letter , id = di.id } ).ToArray(); var machn = db.organization .Where(o => o.id == idOrg.Value) .Select(o => o.machineNameToImpersonate) .FirstOrDefault(); return(new ControlPanelModel { driveLetterInfos = dlis, cur_page = Tabs.ControlPanel, machineNameToImpersonate = machn, }); }
public ActionResult DoLogin() { var db = new tabblesEntities(); PrefillLogin prefill = findPrefillOfRequest(); var hashPwd = TabblesWebLogic.Logic.Hash(prefill.pwd.Trim()); //var utDebug = db.user2.Where(u => u.name == prefill.nomeUtente.Trim()).FirstOrDefault(); var ut = db.user2.Where(u => u.name == prefill.nomeUtente.Trim()).FirstOrDefault(); if (ut == null) { TempData["messaggio"] = "User not found."; TempData["isMessaggioDiSuccesso"] = false; var mod = new LoginModel { //cur_page = Tabs.Login, prefill = prefill, }; return(View("Login", mod)); } else { if (hashPwd.Any(ha => Enumerable.SequenceEqual(ut.pwdHash, ha))) // non posso farlo in entity framework { //string url = Url.Action("Index", "Home", new Autenticazione { nome = ut.nome, pwd = ut.pwd }); //RedirectResult redirectResult = base.Redirect(url); //return redirectResult; //var formco = new FormCollection(); Session["username"] = ut.name; Session["pwd"] = prefill.pwd.Trim(); Session["isAdmin"] = ut.is_super_user ? "S" : "N"; return(RedirectToAction("Index", "Home")); } else { TempData["messaggio"] = "User not found."; TempData["isMessaggioDiSuccesso"] = false; var mod = new LoginModel { //cur_page = Tabs.Login, prefill = prefill, }; return(View("Login", mod)); } } }
public IHttpActionResult getTabblesVisibleToUserExceptWs(string uname, string pwd, int sort, int topLevelOnly, int outputTabblesWithInitData, int includeTagsOfSubordinateUsers) { try { var db = new tabblesEntities(); SqlParameter noAuth = null; var add = new Action <SqlCommand>(c => { c.Parameters.AddWithValue("@uname", uname); c.Parameters.AddWithValue("@pwd", pwd); c.Parameters.AddWithValue("@sort", sort); c.Parameters.AddWithValue("@topLevelOnly", topLevelOnly); c.Parameters.AddWithValue("@outputTabblesWithInitData", outputTabblesWithInitData == 1 ? true : false); c.Parameters.AddWithValue("@includeTagsOfSubordinateUsers", includeTagsOfSubordinateUsers == 1 ? true : false); noAuth = addOutputParameterInt("@noAuth", c); }); var res = StoredProc.ExecuteStoredProc("getTabblesVisibleToUserExceptWs", add); if (res.err == "timeout") { return(Ok(new Result { error = "timeout" })); } else { var r = new resultTables(dataTables: res.tables, noAuth: (int)noAuth.Value, machineName: null , obj: null); //var str = Newtonsoft.Json.JsonConvert.SerializeObject(r); return(Ok(new Result { ret = r })); } } catch (Exception e) { return(Ok(new Result { error = "generic-error", stringOfExc = Utils.stringOfException(e) })); } }
public ActionResult DeleteDriveLetterInfo(int idDli) { using (var tr = new TransactionScope()) { var db = new tabblesEntities(); var isauth = Logic.auth(db, Session, out int?idUtente, out bool?isAdmin, out int?idOrg); if (!isauth || isAdmin != true) // oppure non è admin { giveMessageYouNeedToBeAdmin(); return(Redirect(Url.Action("Index", "Login"))); } var te = (from t in db.driveLetterInfoForTabblesWeb where t.id == idDli select t).SingleOrDefault(); ControlPanelModel mod; if (te == null) { TempData["messaggio"] = $"Drive Letter Info {idDli} does not exist"; TempData["isMessaggioDiSuccesso"] = false; mod = faiQuery(db, idOrg); } else { db.driveLetterInfoForTabblesWeb.Remove(te); db.SaveChanges(); TempData["messaggio"] = $"Drive Letter Info {idDli} was deleted."; TempData["isMessaggioDiSuccesso"] = true; mod = faiQuery(db, idOrg); tr.Complete(); } return(View("ControlPanel", mod)); } }
public ActionResult Index() { var db = new tabblesEntities(); var isauth = Logic.auth(db, Session, out int?idUtente, out bool?isAdmin, out int?idOrg); if (!isauth) { return(Redirect(Url.Action("Index", "Login"))); } var mod = new HomeModel(); return(View("Home", mod)); }
public IHttpActionResult GetUserIdOfNameAndPwd(string userName, string pwd, string machineName) { try { var db = new tabblesEntities(); SqlParameter idUserPar = null; var add = new Action <SqlCommand>(c => { c.Parameters.AddWithValue("@userName", userName); c.Parameters.AddWithValue("@pwd", pwd); c.Parameters.AddWithValue("@machineName", machineName); idUserPar = addOutputParameterInt("@idUser", c); }); var res = StoredProc.ExecuteStoredProc("getUserIdOfNameAndPwd", add); if (res.err == "timeout") { return(Ok(new Result { error = "timeout" })); } else { var idUser = (int)idUserPar.Value; if (idUser == 0) { return(Ok(new Result { ret = "user-not-found" })); } return(Ok(new Result { ret = idUser })); } } catch (Exception e) { return(Ok(new Result { error = "generic-error", stringOfExc = Utils.stringOfException(e) })); } }
private static DriveLetterInfoModel creaModelloDaDb(int idDli, HttpRequestBase Request, HttpSessionStateBase Session) { var db = new tabblesEntities(); var serv = (from se in db.driveLetterInfoForTabblesWeb where se.id == idDli select se).Single(); return(new DriveLetterInfoModel { id = serv.id, letter = serv.letter , convertMac = serv.convertMac , convertLinux = serv.convertLinux , convertIos = serv.convertIos , convertAndroid = serv.convertAndroid , allowDownload = serv.allowDowload }); }
// GET: ControlPanel public ActionResult Index() { var db = new tabblesEntities(); var isauth = Logic.auth(db, Session, out int?idUtente, out bool?isAdmin, out int?idOrg); //isAdmin = false; if (!isauth /*|| isAdmin != true*/) // se non è admin può vedere il control panel ma non salvare. { //giveMessageYouNeedToBeAdmin(); return(Redirect(Url.Action("Index", "Home"))); } var mod = faiQuery(db, idOrg); return(View("ControlPanel", mod)); }
public ActionResult Save() { using (var tr = new TransactionScope()) { var db = new tabblesEntities(); var isauth = TabblesWebLogic.Logic.auth(db, Session, out int?idUtente, out bool?isAdmin, out int?idOrg); //isAdmin = false; if (!isauth || isAdmin != true) // oppure non è admin { giveMessageYouNeedToBeAdmin(); return(Redirect(Url.Action("Index", "Login"))); } // ottengo machinename to impers var machna = Request.Form["machineNameToImpersonate"]; var org = db.organization.Where(o => o.id == idOrg.Value).FirstOrDefault(); org.machineNameToImpersonate = machna; db.SaveChanges(); tr.Complete(); TempData["messaggio"] = $"Changes saved."; TempData["isMessaggioDiSuccesso"] = true; return(Redirect(Url.Action("Index", "ControlPanel"))); //var mod = faiQuery(db, idOrg); //return View("ControlPanel", mod); } }
public ActionResult CreateOrEdit() { try { var db = new tabblesEntities(); bool utenteEsiste = Logic.auth(db, Session /*, out bool isAdmin, out string username*/, out int?idOrg, out bool?isAdmin, out int?idUtente); if (!utenteEsiste /* TODO oppure esiste ma non ha i permessi su questa struttura */) { return(Redirect(Url.Action("Index", "Login"))); } // fai validazione var mod = creaModelloDaRequestForm(Request, Session, db); string validazioneFallita = null; if (mod.letter.IsNullOrWhite()) { validazioneFallita = $"Letter not specified."; } else if (mod.letter.Trim().Length > 1) { validazioneFallita = $"Please type only one letter as the drive letter, not L:\\ or L:."; } if (validazioneFallita != null) { TempData["messaggio"] = validazioneFallita; TempData["isMessaggioDiSuccesso"] = false; return(View("DriveLetterInfo", mod)); } else { if (mod.id == null) // crea { var newdli = new driveLetterInfoForTabblesWeb { letter = mod.letter.Trim().ToUpper() , allowDowload = mod.allowDownload , convertAndroid = mod.convertAndroid , convertIos = mod.convertIos , convertLinux = mod.convertLinux , convertMac = mod.convertMac , convertWindows = "", idOrg = idOrg.Value , }; db.driveLetterInfoForTabblesWeb.Add(newdli); db.SaveChanges(); // scrivi nel db e torna indietro TempData["messaggio"] = "Drive letter info created."; TempData["isMessaggioDiSuccesso"] = true; return(Redirect(Url.Action("Index", "ControlPanel"))); } else // edit { var dli = db.driveLetterInfoForTabblesWeb.Where(se => se.id == mod.id.Value).SingleOrDefault(); dli.allowDowload = mod.allowDownload; dli.convertAndroid = mod.convertAndroid; dli.convertIos = mod.convertIos; dli.convertLinux = mod.convertLinux; dli.convertMac = mod.convertMac; db.SaveChanges(); TempData["messaggio"] = "Drive letter info edited."; TempData["isMessaggioDiSuccesso"] = true; return(Redirect(Url.Action("Index", "ControlPanel"))); } } } catch (Exception e) { throw; } }
private static DriveLetterInfoModel creaModelloDaRequestForm(HttpRequestBase Request, HttpSessionStateBase Session, tabblesEntities db) { //var dataInizio = Utils.parseDateJsIta(Request.Form["dataInizio"]); //var dataFine = Utils.parseDateJsIta(Request.Form["dataFine"]); //string reqFormOra = Request.Form["ora"]; //var ora = Utils.parseTimeIta(reqFormOra); // todo riempire da querystring. serve nel postback var driveLetter = Request.Form["driveLetter"]; var convertIos = Request.Form["convertIos"]; var convertAndroid = Request.Form["convertAndroid"]; var convertLinux = Request.Form["convertLinux"]; var convertMac = Request.Form["convertMac"]; var allowDownload = Request.Form["allowDownload"] == "on"; var formid = Request.Form["id"]; var id = formid.IsNullOrWhite() ? new int?() : int.Parse(Request.Form["id"]); return(new DriveLetterInfoModel { id = id, allowDownload = allowDownload , convertAndroid = convertAndroid , convertIos = convertIos , convertLinux = convertLinux , convertMac = convertMac , letter = driveLetter }); }
public IHttpActionResult getFixedUserData(string uname, string pwd) { try { var db = new tabblesEntities(); SqlParameter noAuth = null; var add = new Action <SqlCommand>(c => { c.Parameters.AddWithValue("@uname", uname); c.Parameters.AddWithValue("@pwd", pwd); noAuth = addOutputParameterInt("@noAuth", c); }); var res = StoredProc.ExecuteStoredProc("getFixedUserData", add); // devo anche estrarre il machinename to impersonate dall'org e passarlo al client! var idorg = int.Parse(res.tables[0].Rows[0]["organization"].ToString()); var org = db.organization.Where(o => o.id == idorg).FirstOrDefault(); if (org.machineNameToImpersonate == null) { return(Ok(new Result { error = "machine-name-to-impersonate-not-set-for-organization" })); } else if (res.err == "timeout") { return(Ok(new Result { error = "timeout" })); } else { var browser = Utils.GetUserPlatform(HttpContext.Current.Request); var tabblesWebRows = (from ro in db.driveLetterInfoForTabblesWeb where ro.idOrg == org.id select new TabblesWebRowForClient { allowDowload = ro.allowDowload, convertAndroid = ro.convertAndroid, convertIos = ro.convertIos, convertLinux = ro.convertLinux, convertMac = ro.convertMac, convertWindows = ro.convertWindows, letter = ro.letter }).ToArray(); var r = new resultTables(dataTables: res.tables, noAuth: (int)noAuth.Value, machineName: org.machineNameToImpersonate , obj: null); return(Ok(new Result { ret = r, tabblesWebRows = tabblesWebRows, browser = browser })); } } catch (Exception e) { return(Ok(new Result { error = "generic-error", stringOfExc = Utils.stringOfException(e) })); } }