Exemplo n.º 1
0
        public ActionResult Create(InstallModel m)
        {
            if (m.InstallType == "SCHEMA" || ModelState.IsValid) {
                // Read embedded create script
                Stream str = Assembly.GetExecutingAssembly().GetManifestResourceStream("Piranha.Data.Scripts.Create.sql") ;
                String sql = new StreamReader(str).ReadToEnd() ;
                str.Close() ;

                // Read embedded data script
                str = Assembly.GetExecutingAssembly().GetManifestResourceStream("Piranha.Data.Scripts.Data.sql") ;
                String data = new StreamReader(str).ReadToEnd() ;
                str.Close() ;

                // Split statements and execute
                string[] stmts = sql.Split(new char[] { ';' }) ;
                using (IDbTransaction tx = Database.OpenTransaction()) {
                    // Create database from script
                    foreach (string stmt in stmts) {
                        if (!String.IsNullOrEmpty(stmt.Trim()))
                            SysUser.Execute(stmt, tx) ;
                    }
                    tx.Commit() ;
                }

                if (m.InstallType.ToUpper() == "FULL") {
                    // Split statements and execute
                    stmts = data.Split(new char[] { ';' }) ;
                    using (IDbTransaction tx = Database.OpenTransaction()) {
                        // Create user
                        SysUser usr = new SysUser() {
                            Login = m.UserLogin,
                            Email = m.UserEmail,
                            GroupId = new Guid("7c536b66-d292-4369-8f37-948b32229b83"),
                            CreatedBy = new Guid("ca19d4e7-92f0-42f6-926a-68413bbdafbc"),
                            UpdatedBy = new Guid("ca19d4e7-92f0-42f6-926a-68413bbdafbc"),
                            Created = DateTime.Now,
                            Updated = DateTime.Now
                        } ;
                        usr.Save(tx) ;

                        // Create user password
                        SysUserPassword pwd = new SysUserPassword() {
                            Id = usr.Id,
                            Password = m.Password,
                            IsNew = false
                        } ;
                        pwd.Save(tx) ;

                        // Create default data
                        foreach (string stmt in stmts) {
                            if (!String.IsNullOrEmpty(stmt.Trim()))
                                SysUser.Execute(stmt, tx) ;
                        }
                        tx.Commit() ;
                    }
                }
                return RedirectToAction("index", "account") ;
            }
            return Index() ;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the user model for the given id.
        /// </summary>
        /// <param name="id">The user id</param>
        /// <returns>The model</returns>
        public static UserEditModel GetById(Guid id)
        {
            UserEditModel m = new UserEditModel();

            m.User     = SysUser.GetSingle(id);
            m.Password = SysUserPassword.GetSingle(id);
            m.Groups   = new SelectList(m.groups, "Id", "Name", m.User.GroupId);

            return(m);
        }
Exemplo n.º 3
0
        public ActionResult GeneratePassword(string id)
        {
            SysUserPassword password = SysUserPassword.GetSingle(new Guid(id));
            string          newpwd   = SysUserPassword.GeneratePassword();

            password.Password = password.PasswordConfirm = newpwd;
            password.Save();
            InformationMessage(Piranha.Resources.Settings.MessageNewPassword + newpwd);

            return(User(id));
        }
Exemplo n.º 4
0
        public ActionResult NewPassword()
        {
            string login   = Request["login"];
            string returl  = Request["returnurl"];
            string failurl = Request["failureurl"];

            var userexists = false;

            using (var db = new DataContext()) {
                userexists = db.Users.Where(u => u.Login == login).Count() > 0;
            }

            if (userexists)
            {
                if (WebPages.Hooks.Mail.SendPassword != null)
                {
                    using (var db = new DataContext()) {
                        var user = db.Users.Where(u => u.Login == login).Single();
                        user.GenerateAndSendPassword(db);

                        if (!String.IsNullOrEmpty(returl))
                        {
                            return(Redirect(returl));
                        }
                        return(Redirect("~/"));
                    }
                }
                else if (WebPages.Hooks.Mail.SendPasswordMail != null)
                {
                    var pwd  = SysUserPassword.GetSingle("sysuser_login = @0", login);
                    var user = SysUser.GetSingle("sysuser_login = @0", login);
                    if (pwd != null)
                    {
                        pwd.Password = SysUserPassword.GeneratePassword();
                        pwd.Save();

                        WebPages.Hooks.Mail.SendPasswordMail(user, pwd.Password);

                        if (!String.IsNullOrEmpty(returl))
                        {
                            return(Redirect(returl));
                        }
                        return(Redirect("~/"));
                    }
                }
            }
            if (!String.IsNullOrEmpty(failurl))
            {
                return(Redirect(failurl));
            }
            return(Redirect("~/"));
        }
Exemplo n.º 5
0
        /// <summary>
        /// Default constructor. Creates a model.
        /// </summary>
        public UserEditModel()
        {
            List<SysGroup> gr = SysGroup.GetFields("sysgroup_id, sysgroup_name",
                new Params() { OrderBy = "sysgroup_id" }) ;
            groups = new List<SysGroup>() ;
            groups.Insert(0, new SysGroup()) ;
            gr.Each<SysGroup>((i,g) => {
                if (HttpContext.Current.User.IsMember(g.Id)) groups.Add(g) ;
            });

            User = new SysUser() ;
            Password = new SysUserPassword() ;
            Groups = new SelectList(groups, "Id", "Name") ;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Default constructor. Creates a model.
        /// </summary>
        public UserEditModel()
        {
            List <SysGroup> gr = SysGroup.GetFields("sysgroup_id, sysgroup_name",
                                                    new Params()
            {
                OrderBy = "sysgroup_id"
            });

            groups = new List <SysGroup>();
            groups.Insert(0, new SysGroup());
            gr.Each <SysGroup>((i, g) => {
                if (HttpContext.Current.User.IsMember(g.Id))
                {
                    groups.Add(g);
                }
            });

            User     = new SysUser();
            Password = new SysUserPassword();
            Groups   = new SelectList(groups, "Id", "Name");
        }
Exemplo n.º 7
0
        public ActionResult Create(InstallModel m)
        {
            if (m.InstallType == "SCHEMA" || ModelState.IsValid)
            {
                // Read embedded create script
                Stream str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Create.sql");
                String sql = new StreamReader(str).ReadToEnd();
                str.Close();

                // Read embedded data script
                str = Assembly.GetExecutingAssembly().GetManifestResourceStream(Database.ScriptRoot + ".Data.sql");
                String data = new StreamReader(str).ReadToEnd();
                str.Close();

                // Split statements and execute
                string[] stmts = sql.Split(new char[] { ';' });
                using (IDbTransaction tx = Database.OpenTransaction()) {
                    // Create database from script
                    foreach (string stmt in stmts)
                    {
                        if (!String.IsNullOrEmpty(stmt.Trim()))
                        {
                            SysUser.Execute(stmt, tx);
                        }
                    }
                    tx.Commit();
                }

                if (m.InstallType.ToUpper() == "FULL")
                {
                    // Split statements and execute
                    stmts = data.Split(new char[] { ';' });
                    using (IDbTransaction tx = Database.OpenTransaction()) {
                        // Create user
                        SysUser usr = new SysUser()
                        {
                            Login     = m.UserLogin,
                            Email     = m.UserEmail,
                            GroupId   = new Guid("7c536b66-d292-4369-8f37-948b32229b83"),
                            CreatedBy = new Guid("ca19d4e7-92f0-42f6-926a-68413bbdafbc"),
                            UpdatedBy = new Guid("ca19d4e7-92f0-42f6-926a-68413bbdafbc"),
                            Created   = DateTime.Now,
                            Updated   = DateTime.Now
                        };
                        usr.Save(tx);

                        // Create user password
                        SysUserPassword pwd = new SysUserPassword()
                        {
                            Id       = usr.Id,
                            Password = m.Password,
                            IsNew    = false
                        };
                        pwd.Save(tx);

                        // Create default data
                        foreach (string stmt in stmts)
                        {
                            if (!String.IsNullOrEmpty(stmt.Trim()))
                            {
                                SysUser.Execute(stmt, tx);
                            }
                        }
                        tx.Commit();
                    }
                }
                return(RedirectToAction("index", "account"));
            }
            return(Index());
        }