public JsonResult Index() { ConvertibleHashtable h = ConvertibleHashtable.fromRequest(); ConvertibleHashtable ud = ConvertibleHashtable.fromJObject((JObject)h["user_data"]); ApiKey k = ApiKey.getApiKey(); if (k.isAdmin()) { if (h["type"].ToString() == "supplier") { ud.merge(((JObject)h["supplier_data"]).ToObject <ConvertibleHashtable>()); if (ud.ContainsKey("user_id")) { ud.Remove("user_id"); } ud.toObject <Supplier>().insert(); } else if (h["type"].ToString() == "admin") { ud.toObject <Admin>().insert(); } else { return(Json(Costants.WRONG_USER_TYPE, JsonRequestBehavior.AllowGet)); } return(Json(Costants.OK, JsonRequestBehavior.AllowGet)); } else { return(Json(Costants.UNAUTHORIZED, JsonRequestBehavior.AllowGet)); } }
/// Ritorna la ConvertibleHashtable dell'Admin|Supplier avente l'user_id specificato protected static ConvertibleHashtable _getAdminOrSupplierHashtableByUserId <T>(int user_id) { ConvertibleHashtable userData = getHashtableById <User>(user_id); ConvertibleHashtable extraData = _db.getData(_getTableName <T>(), "user_id", user_id.ToString())[0]; extraData.merge(userData); return(extraData); }
public JsonResult Update(int id) { ConvertibleHashtable h = ConvertibleHashtable.fromRequest(); ApiKey k = ApiKey.getApiKey(); if (k.isAdmin() || k.checkUser(id)) { // controlla se si deve modificare le informazioni specifiche di un supplier ConvertibleHashtable supplierCurrentData = Supplier.getHashtableByUserId(id); if (h.ContainsKey("supplier_data") && supplierCurrentData["user_id"].ToString() == id.ToString()) { ConvertibleHashtable newData = ConvertibleHashtable.fromJObject((JObject)h["supplier_data"]); if (h.ContainsKey("user_data")) { newData.merge(ConvertibleHashtable.fromJObject((JObject)h["user_data"])); } supplierCurrentData.update(newData); if (!supplierCurrentData.ContainsKey("user_id")) { supplierCurrentData.Add("user_id", id); } supplierCurrentData.toObject <Supplier>().update(); } // modifica le info di base dell'utente, che sia admin o supplier else { ConvertibleHashtable currentData = Model.getHashtableById <User>(id); ConvertibleHashtable newData = ConvertibleHashtable.fromJObject((JObject)h["user_data"]); currentData.update(newData); currentData.toObject <User>().update(); } // aggiorna le api key per riflettere evenutali modifiche alla password o alla mail ApiKey.fromUserId(id).update(); return(Json(Costants.OK, JsonRequestBehavior.AllowGet)); } else { return(Json(Costants.UNAUTHORIZED, JsonRequestBehavior.AllowGet)); } }