コード例 #1
0
        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));
            }
        }
コード例 #2
0
        /// 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);
        }
コード例 #3
0
        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));
            }
        }