Exemplo n.º 1
0
        /// <summary>
        /// 添加一个用户到在线用户表
        /// </summary>
        public bool Add(Data.Model.Users user, Guid uniqueID)
        {
            if (user == null)
            {
                return(false);
            }
            var  onList = GetAll();
            bool isadd  = false;
            var  onUser = onList.Find(p => p.ID == user.ID);

            if (onUser == null)
            {
                isadd  = true;
                onUser = new Data.Model.OnlineUsers();
                var station = new UsersRelation().GetMainByUserID(user.ID);
                if (station != null)
                {
                    onUser.OrgName = new Organize().GetAllParentNames(station.OrganizeID);
                }
            }
            onUser.ID         = user.ID;
            onUser.ClientInfo = string.Concat("操作系统:", Utility.Tools.GetOSName(), "  浏览器:", Utility.Tools.GetBrowse());
            onUser.IP         = Utility.Tools.GetIPAddress();
            onUser.LastPage   = "";
            onUser.LoginTime  = Utility.Tools.DateTime;
            onUser.UniqueID   = uniqueID;
            onUser.UserName   = user.Name;
            if (isadd)
            {
                onList.Add(onUser);
            }
            set(onList);
            return(true);
        }
Exemplo n.º 2
0
        public ActionResult UserAdd(FormCollection collection)
        {
            Business.Platform.Organize borganize = new Business.Platform.Organize();
            Business.Platform.Users    busers    = new Business.Platform.Users();

            string id = Request.QueryString["id"];

            string name    = string.Empty;
            string account = string.Empty;
            string status  = string.Empty;
            string note    = string.Empty;
            Guid   parentID;

            if (collection != null && id.IsGuid(out parentID))
            {
                name    = Request.Form["Name"];
                account = Request.Form["Account"];
                status  = Request.Form["Status"];
                note    = Request.Form["Note"];

                Guid   userID  = Guid.NewGuid();
                string userXML = string.Empty;
                using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
                {
                    //添加人员
                    Data.Model.Users user = new Data.Model.Users();
                    user.Account  = account.Trim();
                    user.Name     = name.Trim();
                    user.Note     = note.IsNullOrEmpty() ? null : note;
                    user.Password = busers.GetUserEncryptionPassword(userID.ToString(), busers.GetInitPassword());
                    user.Sort     = 1;
                    user.Status   = status.IsInt() ? status.ToInt() : 0;
                    user.ID       = userID;
                    busers.Add(user);

                    //添加关系
                    Data.Model.UsersRelation userRelation = new Data.Model.UsersRelation();
                    userRelation.IsMain     = 1;
                    userRelation.OrganizeID = parentID;
                    userRelation.Sort       = new Business.Platform.UsersRelation().GetMaxSort(parentID);
                    userRelation.UserID     = userID;
                    new Business.Platform.UsersRelation().Add(userRelation);

                    //更新父级[ChildsLength]字段
                    borganize.UpdateChildsLength(parentID);

                    //更新角色
                    new Business.Platform.UsersRole().UpdateByUserID(userID);

                    userXML = user.Serialize();
                    scope.Complete();
                }

                Business.Platform.Log.Add("添加了人员", userXML, Business.Platform.Log.Types.组织机构);
                ViewBag.Script = "alert('添加成功!');parent.frames[0].reLoad('" + id + "');window.location=window.location;";
            }
            ViewBag.StatusRadios = borganize.GetStatusRadio("Status", "0", "validate=\"radio\"");
            return(View());
        }
Exemplo n.º 3
0
        public object Register(UserRegisterModel model)
        {
            if (model.Password != model.ConfirmPassword)
            {
                throw new Common.Exceptions.ValidationException("Password confirmation not valid!");
            }

            Users user = new Data.Model.Users {
                Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, Password = model.ConfirmPassword, Username = model.Username
            };
            Users registeredUser = UserManager.Register(user);

            UserModel userModel = new UserModel {
                Email = registeredUser.Email, FirstName = registeredUser.FirstName, Id = registeredUser.Id, IsAdmin = true, LastName = registeredUser.LastName, RegistrationDate = registeredUser.DateCreated
            };

            return(new { User = userModel, Token = CreateLoginToken(user) });
        }
        protected override async Task <AuthenticateResult> HandleAuthenticateAsync()
        {
            if (!Request.Headers.ContainsKey("Authorization"))
            {
                return(AuthenticateResult.Fail("Missing Authorization Header"));
            }

            Data.Model.Users user = null;
            try
            {
                var authHeader      = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]);
                var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
                var credentials     = Encoding.UTF8.GetString(credentialBytes).Split(':');
                var username        = credentials[0];
                var password        = credentials[1];
                user = _userService.Authenticate(username, password);
            }
            catch
            {
                return(AuthenticateResult.Fail("Invalid Authorization Header"));
            }

            if (user == null)
            {
                return(AuthenticateResult.Fail("Invalid Username or Password"));
            }

            var claims = new List <Claim> {
                new Claim(ClaimTypes.NameIdentifier, user.Username),
                new Claim(ClaimTypes.Name, user.FirstName),
            };


            claims.Add(new Claim(ClaimTypes.Role, user.RoleName));


            var identity  = new ClaimsIdentity(claims, Scheme.Name);
            var principal = new ClaimsPrincipal(identity);
            var ticket    = new AuthenticationTicket(principal, Scheme.Name);

            return(AuthenticateResult.Success(ticket));
        }
Exemplo n.º 5
0
        /// <summary>
        /// 更新记录
        /// </summary>
        /// <param name="model">Data.Model.Users实体类</param>
        public int Update(Data.Model.Users model)
        {
            string sql = @"UPDATE Users SET 
				Name=@Name,Account=@Account,Password=@Password,Status=@Status,Sort=@Sort,Note=@Note
				WHERE ID=@ID"                ;

            SqlParameter[] parameters = new SqlParameter[] {
                new SqlParameter("@Name", SqlDbType.NVarChar, 100)
                {
                    Value = model.Name
                },
                new SqlParameter("@Account", SqlDbType.VarChar, 255)
                {
                    Value = model.Account
                },
                new SqlParameter("@Password", SqlDbType.VarChar, 500)
                {
                    Value = model.Password
                },
                new SqlParameter("@Status", SqlDbType.Int, -1)
                {
                    Value = model.Status
                },
                new SqlParameter("@Sort", SqlDbType.Int, -1)
                {
                    Value = model.Sort
                },
                model.Note == null ? new SqlParameter("@Note", SqlDbType.NVarChar, -1)
                {
                    Value = DBNull.Value
                } : new SqlParameter("@Note", SqlDbType.NVarChar, -1)
                {
                    Value = model.Note
                },
                new SqlParameter("@ID", SqlDbType.UniqueIdentifier, -1)
                {
                    Value = model.ID
                }
            };
            return(dbHelper.Execute(sql, parameters));
        }
Exemplo n.º 6
0
        /// <summary>
        /// 添加记录
        /// </summary>
        /// <param name="model">Data.Model.Users实体类</param>
        /// <returns>操作所影响的行数</returns>
        public int Add(Data.Model.Users model)
        {
            string sql = @"INSERT INTO Users
				(ID,Name,Account,Password,Status,Sort,Note) 
				VALUES(@ID,@Name,@Account,@Password,@Status,@Sort,@Note)"                ;

            SqlParameter[] parameters = new SqlParameter[] {
                new SqlParameter("@ID", SqlDbType.UniqueIdentifier, -1)
                {
                    Value = model.ID
                },
                new SqlParameter("@Name", SqlDbType.NVarChar, 100)
                {
                    Value = model.Name
                },
                new SqlParameter("@Account", SqlDbType.VarChar, 255)
                {
                    Value = model.Account
                },
                new SqlParameter("@Password", SqlDbType.VarChar, 500)
                {
                    Value = model.Password
                },
                new SqlParameter("@Status", SqlDbType.Int, -1)
                {
                    Value = model.Status
                },
                new SqlParameter("@Sort", SqlDbType.Int, -1)
                {
                    Value = model.Sort
                },
                model.Note == null ? new SqlParameter("@Note", SqlDbType.NVarChar, -1)
                {
                    Value = DBNull.Value
                } : new SqlParameter("@Note", SqlDbType.NVarChar, -1)
                {
                    Value = model.Note
                }
            };
            return(dbHelper.Execute(sql, parameters));
        }
Exemplo n.º 7
0
        /// <summary>
        /// 将DataRedar转换为List
        /// </summary>
        private List <Data.Model.Users> DataReaderToList(SqlDataReader dataReader)
        {
            List <Data.Model.Users> List = new List <Data.Model.Users>();

            Data.Model.Users model = null;
            while (dataReader.Read())
            {
                model          = new Data.Model.Users();
                model.ID       = dataReader.GetGuid(0);
                model.Name     = dataReader.GetString(1);
                model.Account  = dataReader.GetString(2);
                model.Password = dataReader.GetString(3);
                model.Status   = dataReader.GetInt32(4);
                model.Sort     = dataReader.GetInt32(5);
                if (!dataReader.IsDBNull(6))
                {
                    model.Note = dataReader.GetString(6);
                }
                List.Add(model);
            }
            return(List);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 指派任务
        /// </summary>
        /// <param name="taskID">任务ID</param>
        /// <param name="user">要指派的人员</param>
        /// <returns></returns>
        public string DesignateTask(Guid taskID, Data.Model.Users user)
        {
            var task = Get(taskID);

            if (task == null)
            {
                return("未找到任务");
            }
            else if (task.Status.In(2, 3, 4))
            {
                return("该任务已处理");
            }
            string receiveName = task.ReceiveName;

            task.ReceiveID   = user.ID;
            task.ReceiveName = user.Name;
            task.OpenTime    = null;
            task.Status      = 0;
            task.Note        = string.Format("该任务由{0}指派", receiveName);
            Update(task);

            return("指派成功");
        }
Exemplo n.º 9
0
        public ActionResult User(FormCollection collection)
        {
            Business.Platform.Organize      borganize     = new Business.Platform.Organize();
            Business.Platform.Users         busers        = new Business.Platform.Users();
            Business.Platform.UsersRelation buserRelation = new Business.Platform.UsersRelation();
            Data.Model.Users    user     = null;
            Data.Model.Organize organize = null;
            string id       = Request.QueryString["id"];
            string parentID = Request.QueryString["parentid"];

            string name    = string.Empty;
            string account = string.Empty;
            string status  = string.Empty;
            string note    = string.Empty;

            string parentString = string.Empty;

            Guid userID, organizeID;

            if (id.IsGuid(out userID))
            {
                user = busers.Get(userID);
                if (user != null)
                {
                    name    = user.Name;
                    account = user.Account;
                    status  = user.Status.ToString();
                    note    = user.Note;

                    //所在组织字符串
                    System.Text.StringBuilder sb = new System.Text.StringBuilder();
                    var userRelations            = buserRelation.GetAllByUserID(user.ID).OrderByDescending(p => p.IsMain);
                    foreach (var userRelation in userRelations)
                    {
                        sb.Append("<div style='margin:3px 0;'>");
                        sb.Append(borganize.GetAllParentNames(userRelation.OrganizeID, true));
                        if (userRelation.IsMain == 0)
                        {
                            sb.Append("<span style='color:#999'> [兼职]</span>");
                        }
                        sb.Append("</div>");
                    }
                    ViewBag.ParentString = sb.ToString();
                }
            }
            if (parentID.IsGuid(out organizeID))
            {
                organize = borganize.Get(organizeID);
            }

            if (collection != null)
            {
                //保存
                if (!Request.Form["Save"].IsNullOrEmpty() && user != null)
                {
                    name    = Request.Form["Name"];
                    account = Request.Form["Account"];
                    status  = Request.Form["Status"];
                    note    = Request.Form["Status"];

                    string oldXML = user.Serialize();

                    user.Name    = name.Trim();
                    user.Account = account.Trim();
                    user.Status  = status.ToInt(1);
                    user.Note    = note.IsNullOrEmpty() ? null : note.Trim();

                    busers.Update(user);
                    Business.Platform.Log.Add("修改了用户", "", Business.Platform.Log.Types.组织机构, oldXML, user.Serialize());
                    ViewBag.Script = "alert('保存成功!');parent.frames[0].reLoad('" + parentID + "');";
                }

                //删除用户
                if (!Request.Form["DeleteBut"].IsNullOrEmpty() && user != null && organize != null)
                {
                    using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
                    {
                        var urs = buserRelation.GetAllByUserID(user.ID);
                        busers.Delete(user.ID);

                        buserRelation.DeleteByUserID(user.ID);

                        new Business.Platform.UsersInfo().Delete(user.ID);
                        new Business.Platform.UsersRole().DeleteByUserID(user.ID);

                        //更新父级[ChildsLength]字段
                        foreach (var ur in urs)
                        {
                            borganize.UpdateChildsLength(ur.OrganizeID);
                        }
                        scope.Complete();
                    }

                    string refreshID = parentID;
                    string url       = string.Empty;
                    var    users     = borganize.GetAllUsers(refreshID.ToGuid());
                    if (users.Count > 0)
                    {
                        url = "User?id=" + users.Last().ID + "&appid=" + Request.QueryString["appid"] + "&tabid=" + Request.QueryString["tabid"] + "&parentid=" + parentID;
                    }
                    else
                    {
                        refreshID = organize.ParentID == Guid.Empty ? organize.ID.ToString() : organize.ParentID.ToString();
                        url       = "Body?id=" + parentID + "&appid=" + Request.QueryString["appid"] + "&tabid=" + Request.QueryString["tabid"] + "&parentid=" + organize.ParentID;
                    }
                    Business.Platform.Log.Add("删除了用户", user.Serialize(), Business.Platform.Log.Types.组织机构);
                    ViewBag.Script = "alert('删除成功');parent.frames[0].reLoad('" + refreshID + "');window.location='" + url + "'";
                }

                //初始化密码
                if (!Request.Form["InitPass"].IsNullOrEmpty() && user != null)
                {
                    string initpass = busers.GetInitPassword();
                    busers.InitPassword(user.ID);
                    Business.Platform.Log.Add("初始化了用户密码", user.Serialize(), Business.Platform.Log.Types.组织机构);
                    ViewBag.Script = "alert('密码已初始化为:" + initpass + "');";
                }

                //调动
                if (!Request.Form["Move1"].IsNullOrEmpty() && user != null)
                {
                    string moveto          = Request.Form["movetostation"];
                    string movetostationjz = Request.Form["movetostationjz"];
                    Guid   moveToID;
                    if (moveto.IsGuid(out moveToID))
                    {
                        using (System.Transactions.TransactionScope scope = new System.Transactions.TransactionScope())
                        {
                            var us = buserRelation.GetAllByUserID(user.ID);
                            if ("1" != movetostationjz)
                            {
                                buserRelation.DeleteByUserID(user.ID);
                            }

                            Data.Model.UsersRelation ur = new Data.Model.UsersRelation();
                            ur.UserID     = user.ID;
                            ur.OrganizeID = moveToID;
                            ur.IsMain     = "1" == movetostationjz ? 0 : 1;
                            ur.Sort       = buserRelation.GetMaxSort(moveToID);
                            buserRelation.Add(ur);

                            foreach (var u in us)
                            {
                                borganize.UpdateChildsLength(u.OrganizeID);
                            }

                            borganize.UpdateChildsLength(organizeID);
                            borganize.UpdateChildsLength(moveToID);

                            scope.Complete();
                            ViewBag.Script = "alert('调动成功!');parent.frames[0].reLoad('" + parentID + "');parent.frames[0].reLoad('" + moveto + "')";
                        }

                        Business.Platform.Log.Add(("1" == movetostationjz ? "兼职" : "全职") + "调动了人员的岗位", "将人员调往岗位(" + moveto + ")", Business.Platform.Log.Types.组织机构);
                    }
                }
            }
            ViewBag.StatusRadios = borganize.GetStatusRadio("Status", status, "validate=\"radio\"");
            return(View(user));
        }
Exemplo n.º 10
0
 /// <summary>
 /// 记录日志
 /// </summary>
 /// <param name="err"></param>
 public static void Add(string title, string contents, Types type = Types.其它分类, string oldXML = "", string newXML = "", Data.Model.Users user = null)
 {
     if (user == null)
     {
         user = Platform.Users.CurrentUser;
     }
     Data.Model.Log log = new Data.Model.Log();
     log.Contents  = contents;
     log.ID        = Guid.NewGuid();
     log.IPAddress = Utility.Tools.GetIPAddress();
     log.Others    = string.Format("操作系统:{0} 浏览器:{1}", Utility.Tools.GetOSName(), Utility.Tools.GetBrowse());
     log.Title     = title;
     log.OldXml    = oldXML.IsNullOrEmpty() ? null : oldXML;
     log.NewXml    = newXML.IsNullOrEmpty() ? null : newXML;
     log.Type      = type.ToString();
     log.URL       = System.Web.HttpContext.Current.Request.Url.ToString();
     if (user != null)
     {
         log.UserID   = user.ID;
         log.UserName = user.Name;
     }
     log.WriteTime = Utility.DateTimeNew.Now;
     Add(log);
 }
Exemplo n.º 11
0
 /// <summary>
 /// 更新
 /// </summary>
 public int Update(Data.Model.Users model)
 {
     return(dataUsers.Update(model));
 }
Exemplo n.º 12
0
 /// <summary>
 /// 新增
 /// </summary>
 public int Add(Data.Model.Users model)
 {
     return(dataUsers.Add(model));
 }