Exemplo n.º 1
0
        public new SorentoLib.Ajax.Respons Process(SorentoLib.Session Session, string Fullname, string Method)
        {
            SorentoLib.Ajax.Respons result = new SorentoLib.Ajax.Respons ();
            SorentoLib.Ajax.Request request = new SorentoLib.Ajax.Request (Session.Request.QueryJar.Get ("data").Value);

            switch (Fullname.ToLower ())
            {
                #region SorentoLib.User
                case "sorentolib.user":
                {
                    switch (Method.ToLower ())
                    {
            //						if (Session.AccessLevel < SorentoLib.Enums.Accesslevel.Administrator) throw new Exception (string.Format (sCMS.Strings.Exception.AjaxSessionPriviliges, "template.new"));

                        case "new":
                        {
                            result.Add (new SorentoLib.User (request.getValue<string> ("username"), request.getValue<string> ("email")));
                            break;
                        }

                        case "load":
                        {
                            result.Add (SorentoLib.User.Load (request.getValue<Guid> ("id")));
                            break;
                        }

                        case "save":
                        {
                            request.getValue<SorentoLib.User> ("sorentolib.user").Save ();
                            break;
                        }

                        case "delete":
                        {
                            SorentoLib.User.Delete (request.getValue<Guid> ("id"));
                            break;
                        }

                        case "list":
                        {
                            result.Add (SorentoLib.User.List ());
                            break;
                        }

                        case "changepassword":
                        {
                            if (request.getValue<Guid> ("userid") == Session.User.Id)
                            {
                                if (request.xPathExists ("oldpassword"))
                                {
                                    string oldpassword = request.getValue<string> ("oldpassword");
                                    string newpassword = request.getValue<string> ("newpassword");

                                    if (Session.User.Authenticate (oldpassword))
                                    {
                                        Session.User.Password = newpassword;
                                        Session.User.Save ();
                                    }
                                }
                            }
                            else
                            {
                                string newpassword = request.getValue<string> ("newpassword");

                                SorentoLib.User user = SorentoLib.User.Load (request.getValue<Guid> ("userid"));
                                user.Password = newpassword;
                                user.Save ();
                            }

            //							string oldpassword = SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (request.Key<string> ("oldpassword"))));
            //							string newpassword = SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (request.Key<string> ("newpassword"))));

            //							SorentoLib.User user = new SorentoLib.User ();
            //							if (user.Load (new Guid (request.Data<string> ("id"))))
            //							{
            //								if (user.Authenticate (oldpassword))
            //								{
            //									user.Password = newpassword;
            //
            //									if (user.Save ())
            //									{
            //										result.Data.Add ("success", "true");
            //									}
            //								}
            //							}
                            break;
                        }

                        case "isusernameinuse":
                        {
                            if (request.xPathExists ("id"))
                            {
                                result.Add ("result", SorentoLib.User.IsUsernameInUse (request.getValue<string> ("username"), new Guid (request.Key<string>("id"))));
            //								result.Add ("result", SorentoLib.User.IsUsernameInUse (request.Key<string>("username"), new Guid (request.Key<string>("id"))));
                            }
                            else
                            {
                                result.Add ("result", SorentoLib.User.IsUsernameInUse (request.getValue<string> ("username")));
            //								result.Add ("result", SorentoLib.User.IsUsernameInUse (request.Key<string>("username")));
                            }

                            break;
                        }

                        case "isemailinuse":
                        {
                            if (request.xPathExists ("id"))
                            {
                                result.Add ("result", SorentoLib.User.IsEmailInUse (request.getValue<string>("email"), new Guid (request.getValue<string>("id"))));
                            }
                            else
                            {
                                result.Add ("result", SorentoLib.User.IsEmailInUse (request.getValue<string>("email")));
                            }

                            break;
                        }

                        default:
                            break;
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Usergroup
                case "sorentolib.usergroup":
                {
                    switch (Method.ToLower ())
                    {
                        case "new":
                        {
                            result.Add (new SorentoLib.Usergroup ());
                            break;
                        }

                        case "load":
                        {
                            result.Add (SorentoLib.Usergroup.Load (request.getValue<Guid> ("id")));
                            break;
                        }

                        case "save":
                        {
                            request.getValue<SorentoLib.Usergroup> ("sorentolib.usergroup").Save ();
                            break;
                        }

                        case "delete":
                        {
                            SorentoLib.Usergroup.Delete (request.getValue<Guid> ("id"));
                            break;
                        }

                        case "list":
                        {
                            result.Add (SorentoLib.Usergroup.List ());
                            break;
                        }

                        case "accesslevels":
                        {
                            List<SorentoLib.Enums.Accesslevel> test1 = new List<SorentoLib.Enums.Accesslevel> ();
                            foreach (SorentoLib.Enums.Accesslevel accesslevel in Enum.GetValues(typeof(SorentoLib.Enums.Accesslevel)))
                            {

            //								Hashtable test2 = new Hashtable ();
            //								test2.Add ("name", accesslevel.ToString ());
            //								test2.Add ("value", (int)accesslevel);

                                test1.Add (accesslevel);
                            }

                            result.Add (test1);
                            break;
                        }
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Session
                case "sorentolib.session":
                {
                    switch (Method.ToLower ())
                    {
                        case "getcurrent":
                        {
            //							result.Data = Session.ToItem ();
                            break;
                        }

                        case "logout":
                        {
                            result.Add (Session.Logout ());
                            break;
                        }
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Media
                case "sorentolib.media":
                {
                    switch (Method.ToLower ())
                    {
                        case "load":
                        {
                            SorentoLib.Media media = SorentoLib.Media.Load (new Guid (request.Key<string> ("id")));

            //							result.Data.Add ("id", media.Id);
            //							result.Data.Add ("createtimestamp", media.CreateTimestamp);
            //							result.Data.Add ("updatetimestamp", media.UpdateTimestamp);
            //							result.Data.Add ("path", media.Path);
            //							result.Data.Add ("directoryname", media.DirectoryName);
            //							result.Data.Add ("filename", media.FileName);
            //							result.Data.Add ("mimetype", media.Mimetype);
            //							result.Data.Add ("size", media.Size);
            //							result.Data.Add ("accesslevel", media.Accesslevel);
            //							result.Data.Add ("status", media.Status);

                            break;
                        }
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Transformation
                case "sorentolib.mediatransformation":
                {
                    switch (Method.ToLower ())
                    {
                        case "new":
                        {
                            MediaTransformation mediatransformation = MediaTransformation.FromAjaxRequest (request);
                            mediatransformation.Save ();
                            mediatransformation.ToAjaxRespons (result);

                            break;
                        }

                        case "load":
                        {
                            MediaTransformation mediatransformation = MediaTransformation.Load (new Guid (request.Key<string> ("id")));
                            mediatransformation.ToAjaxRespons (result);

                            break;
                        }

                        case "save":
                        {
                            MediaTransformation mediatransformation = MediaTransformation.FromAjaxRequest (request);
                            mediatransformation.Save ();

                            break;
                        }

                        case "delete":
                        {
                            MediaTransformation.Delete (new Guid (request.Key<string> ("id")));

                            break;
                        }

                        case "list":
                        {
                            List<Hashtable> mediatransformations = new List<Hashtable> ();
                            foreach (SorentoLib.MediaTransformation mediatransformation in SorentoLib.MediaTransformation.List ())
                            {
                                mediatransformations.Add (mediatransformation.ToAjaxItem ());
                            }
            //							result.Data.Add ("mediatransformations", mediatransformations);

                            break;
                        }

                        default:
                            break;
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Services.Config
                case "sorentolib.services.config":
                {
                    switch (Method.ToLower ())
                    {
                        case "get":
                        {
                            if (request.Data.ContainsKey ("keys"))
                            {
                                Hashtable data = new Hashtable ();
                                foreach (string key in ((Hashtable)request.Data["keys"]).Keys)
                                {
                                    data.Add (((Hashtable)request.Data["keys"])[key], SorentoLib.Services.Config.Get<string> (((Hashtable)request.Data["keys"])[key]));
                                }
            //								result.Data.Add ("data", data);
                            }
                            else
                            {
            //								result.Data.Add ("value", SorentoLib.Services.Config.Get<string> (request.Key<string> ("module"), request.Key<string> ("key")));
                            }

                            break;
                        }

                        case "set":
                        {
                            if (request.Data.ContainsKey ("keys"))
                            {
                                foreach (string key in ((Hashtable)request.Data["keys"]).Keys)
                                {
                                    SorentoLib.Services.Config.Set (key, ((Hashtable)request.Data["keys"])[key]);
                                }
                            }
                            else
                            {
                                SorentoLib.Services.Config.Set (request.Key<string> ("module"), request.Key<string> ("key"), request.Key<string> ("value"));
                            }

                            break;
                        }
                    }
                    break;
                }
                #endregion

                #region SorentoLib.Serivces.Snapshot
                case "sorentolib.services.snapshot":
                {
                    switch (Method.ToLower ())
                    {
                        case "new":
                        {
                            SorentoLib.Services.Snapshot.Take ();

                            break;
                        }

                        case "load":
                        {
                            SorentoLib.Services.Snapshot snapshot = SorentoLib.Services.Snapshot.Load (request.Key<string> ("id"));
                            snapshot.ToAjaxRespons (result);

                            break;
                        }

                        case "develop":
                        {
                            SorentoLib.Services.Snapshot.Develop (SorentoLib.Services.Snapshot.Load (request.Key<string> ("id")));

                            break;
                        }

                        case "delete":
                        {
                            SorentoLib.Services.Snapshot.Delete (request.Key<string> ("id"));

                            break;
                        }

                        case "list":
                        {
                            List<Hashtable> snapshots = new List<Hashtable> ();
                            foreach (SorentoLib.Services.Snapshot snapshot in SorentoLib.Services.Snapshot.List ())
                            {
                                snapshots.Add (snapshot.ToAjaxItem ());
                            }
            //							result.Data.Add ("snapshots", snapshots);

                            break;
                        }

                        default:
                            break;
                    }
                    break;
                }
                #endregion
            }

            return result;
        }
Exemplo n.º 2
0
        public bool Process(SorentoLib.Session Session, string Fullname, string Method)
        {
            bool result = false;

            switch (Fullname.ToLower ())
            {
                #region Session
                case "sorentolib.session":
                {
                    switch (Method.ToLower ())
                    {
                        case "login":
                        {
            //							return Session.Login (Session.Request.QueryJar.Get ("username").Value, SorentoLib.Tools.StringHelper.ASCIIBytesToString (SorentoLib.Services.Crypto.Decrypt (SorentoLib.Tools.StringHelper.HexStringToBytes (Session.Request.QueryJar.Get("password").Value))));
                            result = Session.Login (Session.Request.QueryJar.Get ("username").Value, Session.Request.QueryJar.Get("password").Value);
                            break;
                        }

                        case "logout":
                        {
                            result = Session.Logout ();
                            break;
                        }
                    }
                    break;
                }
                #endregion

                #region Media
                case "sorentolib.media":
                {
                    switch (Method.ToLower ())
                    {
                        case "upload":
                        {
                            try
                            {
                                string path = Session.Request.QueryJar.Get ("path").Value;

                                string filename = System.IO.Path.GetFileNameWithoutExtension (Session.Request.QueryJar.Get ("upload").Value).Replace ("%", "_");
                                string extension = System.IO.Path.GetExtension (Session.Request.QueryJar.Get ("upload").Value).ToLower ();

                                path = path.Replace ("%%GUID%%", Guid.NewGuid ().ToString ()).Replace ("%%FILENAME%%", filename).Replace ("%%EXTENSION%%", extension);

                                SorentoLib.Enums.MediaStatus status = SNDK.Convert.StringToEnum<SorentoLib.Enums.MediaStatus> (Session.Request.QueryJar.Get ("status").Value);
                                string mediatransformations = Session.Request.QueryJar.Get ("mediatransformations").Value;
                                string mimetypes = Session.Request.QueryJar.Get ("mimetypes").Value;
                                string postuploadscript = Session.Request.QueryJar.Get ("postuploadscript").Value;

                                if (mimetypes.Contains (Session.Request.QueryJar.Get ("upload").BinaryContentType))
                                {
                                    SorentoLib.Media media = new SorentoLib.Media (path, Session.Request.QueryJar.Get ("upload").BinaryData);
                                    media.Status = status;
                                    media.Save ();

                                    if (postuploadscript != string.Empty)
                                    {
                                        SorentoLib.MediaTransformation.Transform (media.DataPath, SorentoLib.Services.Config.Get<string> (SorentoLib.Enums.ConfigKey.core_pathscript) + postuploadscript);
                                    }

                                    if (mediatransformations != string.Empty)
                                    {
                                        foreach (string mediatransformationid in mediatransformations.Split (";".ToCharArray (), StringSplitOptions.RemoveEmptyEntries))
                                        {
                                            MediaTransformation mediatransformation = MediaTransformation.Load (new Guid (mediatransformationid));
                                            mediatransformation.Transform (media);
                                        }
                                    }

                                    Session.Page.Variables.Add ("mediaid", media.Id);
                                    Session.Page.Variables.Add ("mediasoftpath", media.Path);

                                    Console.WriteLine (media.Path);
                                    Session.Page.Variables.Add ("uploadsuccess", "true");
                                }
                                else
                                {
                                    Session.Page.Variables.Add ("uploadsuccess", "false");
                                    Session.Page.Variables.Add ("cmderrormessage", Strings.ErrorMessage.MediaUploadMimeType);
                                }

                                result = true;
                            }
                            catch (Exception exception)
                            {

                                Session.Page.Variables.Add ("uploadsuccess", "false");
                                Session.Page.Variables.Add ("cmderrormessage", Strings.ErrorMessage.MediaUploadUnknown);
                                SorentoLib.Services.Logging.LogDebug (string.Format (Strings.LogDebug.MediaUploadException, exception.ToString ()));
                            }
                        }
                        break;
                    }
                    break;
                }
                #endregion

                // TODO: Implement Function[SorentoLib.User]
                #region User
                case "sorentolib.user":
                    break;
                #endregion

                // TODO: Implement Function[SorentoLib.UserGroup]
                #region UserGroup
                case "sorentolib.usergroup":
                    break;
                #endregion

                #region SorentoLib.Services.Snapshot
                case "sorentolib.services.snapshot":
                {
                    switch (Method.ToLower ())
                    {
                        case "upload":
                        {
                            if (Session.Request.QueryJar.Get ("upload").BinaryContentType == "application/zip")
                            {
                                FileStream filestream = File.Create (SorentoLib.Services.Config.Get<string> (SorentoLib.Enums.ConfigKey.snapshot_path) + Session.Request.QueryJar.Get ("upload").Value);
                                BinaryWriter binarywriter = new BinaryWriter(filestream);
                                binarywriter.Write(Session.Request.QueryJar.Get ("upload").BinaryData);
                                binarywriter.Close();
                                filestream.Close();

                                Session.Page.Variables.Add ("uploadsuccess", "true");
                            }
                            break;
                        }
                    }
                    break;
                }
                #endregion
            }

            return result;
        }