Пример #1
0
        public User AuthenticateUser(User userathenticate)
        {
            var userinfo = new Models.User();
            var userRole = new Models.UserRole();
            var userInfo = (from user in _dbcontext.Users
                            join userrole in _dbcontext.UserRoles
                            on user.UserRole.RoleId equals userrole.RoleId
                            where (user.Email == userathenticate.Email && user.Password == userathenticate.Password)
                            select new
            {
                user.ID,
                user.Email,
                user.UserRole.RoleId,
                user.UserName,
                userrole.RoleName
            }).FirstOrDefault();

            if (userInfo != null)
            {
                userinfo.ID       = userInfo.ID;
                userinfo.UserName = userInfo.UserName;
                userRole.RoleName = userInfo.RoleName;
                userinfo.Email    = userInfo.Email;
                userinfo.UserRole = userRole;
            }


            // return null if user not found
            if (userinfo == null)
            {
                return(null);
            }

            return(userinfo);
        }
Пример #2
0
        public ActionResult EditRoles(int UserId, int[] SelectedGroups)
        {
            if (ModelState.IsValid)
            {
                List <int> UserRole = (from s in db.Roles join ur in db.UserRoles on s.Id equals ur.RoleId where ur.UserId == UserId select s.Id).ToList();

                foreach (int i in SelectedGroups)
                {
                    if (!UserRole.Contains(i))
                    {
                        UserRole ur = new Models.UserRole();
                        ur.UserId = UserId;
                        ur.RoleId = i;
                        ur.Id     = db.UserRoles.OrderByDescending(c => c.Id).Select(c => c.Id).FirstOrDefault() + 1;
                        db.UserRoles.Add(ur);
                        db.SaveChanges();
                    }
                }
                foreach (int j in UserRole)
                {
                    if (!SelectedGroups.Contains(j))
                    {
                        UserRole ur = db.UserRoles.Where(c => c.RoleId == j && c.UserId == UserId).FirstOrDefault();

                        db.UserRoles.Remove(ur);
                        db.SaveChanges();
                    }
                }
                //db.Entry(user).State = EntityState.Modified;
                //db.SaveChanges();
                //return RedirectToAction("Index");
            }
            return(RedirectToAction("Index"));
        }
Пример #3
0
 public static Models.UserRole GetCopyOfType(Models.UserRole _userRole)
 {
     return(new Models.UserRole()
     {
         Id = _userRole.Id,
         Type = _userRole.Type
     });
 }
Пример #4
0
 public static UserRoleGetDto FromRole(Models.UserRole role)
 {
     return(new UserRoleGetDto
     {
         Id = role.Id,
         Name = role.Name
     });
 }
        public JsonResult <Models.UserRole> GetUserRole(int id)
        {
            EntityMapperUserRole <DataAccessLayer.SP_GETUserRoles_Result, Models.UserRole> mapObj = new EntityMapperUserRole <DataAccessLayer.SP_GETUserRoles_Result, Models.UserRole>();

            DataAccessLayer.SP_GETUserRoles_Result dalBlotterTBO = DAL.GetUserRole(id);
            Models.UserRole products = new Models.UserRole();
            products = mapObj.Translate(dalBlotterTBO);
            return(Json <Models.UserRole>(products));
        }
Пример #6
0
 public static UserRoleGetModel FromUserRole(Models.UserRole userRole)
 {
     return(new UserRoleGetModel
     {
         Id = userRole.Id,
         Name = userRole.Name,
         Description = userRole.Description
     });
 }
        public bool UpdateUserRole(Models.UserRole item)
        {
            bool status = false;

            if (ModelState.IsValid)
            {
                status = DAL.UpdateUserRole(item.URID, item.RoleName, item.isActive);
            }
            return(status);
        }
Пример #8
0
        public IActionResult Post([FromBody] Models.UserRole userRole)
        {
            if (userRole == null)
            {
                return(BadRequest());
            }
            var ur = this._mapper.Map <Entities.UserRole>(userRole);

            ur.CreatedIP = "1.1.1.1";

            var result = this._userRolesRepository.Insert(ur);

            if (result != null)
            {
                return(Created("api/userRoles", result.Id));
            }
            else
            {
                return(BadRequest("Failed to create userRole."));
            }
        }
Пример #9
0
 /// <summary>
 /// Adds roles to the user.
 /// </summary>
 /// <param name="u"></param>
 /// <param name="r"></param>
 public static void AddRoles(User u, List<Role> r)
 {
     using (EntityContext ctx = new EntityContext())
     {
         foreach (Role ri in r)
         {
             Models.UserRole ur = new Models.UserRole()
             {
                 UserId = u.UserId,
                 RoleId = ri.RoleId
             };
             if (ctx.UserRoles.Where(uro => uro.UserId.Equals(u.UserId) && uro.RoleId.Equals(ri.RoleId)).Any())
             {
             }
             else
             {
                 ctx.UserRoles.AddObject(ur);
             }
         }
         ctx.SaveChanges();
     }
 }
Пример #10
0
 /// <summary>
 /// Adds roles to the user.
 /// </summary>
 /// <param name="u"></param>
 /// <param name="r"></param>
 public static void AddRoles(User u, List <Role> r)
 {
     using (EntityContext ctx = new EntityContext())
     {
         foreach (Role ri in r)
         {
             Models.UserRole ur = new Models.UserRole()
             {
                 UserId = u.UserId,
                 RoleId = ri.RoleId
             };
             if (ctx.UserRoles.Where(uro => uro.UserId.Equals(u.UserId) && uro.RoleId.Equals(ri.RoleId)).Any())
             {
             }
             else
             {
                 ctx.UserRoles.AddObject(ur);
             }
         }
         ctx.SaveChanges();
     }
 }
Пример #11
0
        public IActionResult Put(string id, [FromBody] Models.UserRole userRole)
        {
            if (userRole == null)
            {
                return(BadRequest());
            }
            var ur = this._mapper.Map <Entities.UserRole>(userRole);

            ur.ModifiedIP = "2.2.2.2";

            var result = this._userRolesRepository.Update(id, ur);

            if (result)
            {
                var item = this._userRolesRepository.Find(id);
                return(Ok(item));
            }
            else
            {
                return(BadRequest("Failed to Update userRole."));
            }
        }
        public ActionResult Edit(int id, FormCollection form)
        {
            #region Added by shakir (Currency parameter)

            var selectCurrency = (dynamic)null;
            if (form["selectCurrency"] != null)
            {
                selectCurrency = Convert.ToInt32(form["selectCurrency"].ToString());
            }
            else
            {
                selectCurrency = Convert.ToInt32(Session["SelectedCurrency"].ToString());
            }
            UtilityClass.GetSelectedCurrecy(selectCurrency);

            #endregion

            ServiceRepository   serviceObj = new ServiceRepository();
            HttpResponseMessage response   = serviceObj.GetResponse("/api/UserRole/GetUserRole?id=" + id.ToString());
            response.EnsureSuccessStatusCode();
            Models.UserRole UserRole = response.Content.ReadAsAsync <Models.UserRole>().Result;
            UtilityClass.ActivityMonitor(Convert.ToInt32(Session["UserID"]), Session.SessionID, Request.UserHostAddress.ToString(), new Guid().ToString(), JsonConvert.SerializeObject(UserRole), this.RouteData.Values["action"].ToString(), Request.RawUrl.ToString());
            return(PartialView("_Edit", UserRole));
        }
Пример #13
0
        private static void AddUsersToRoles(IRepository repository, IUnitOfWork unitOfWork, string[] userNames, string[] roleNames)
        {
            unitOfWork.BeginTransaction();

            // Get roles future query
            var distinctRoleNames = roleNames.Distinct().ToArray();
            var roleIdsQuery      = repository
                                    .AsQueryable <Models.Role>(role => distinctRoleNames.Contains(role.Name))
                                    .Select(role => new
            {
                Id   = role.Id,
                Name = role.Name
            })
                                    .ToFuture();

            // Get users future query
            var distinctUserNames = userNames.Distinct().ToArray();
            var userIdsQuery      = repository
                                    .AsQueryable <Models.User>(user => distinctUserNames.Contains(user.UserName))
                                    .Select(user => new
            {
                Id   = user.Id,
                Name = user.UserName
            })
                                    .ToFuture();

            // Get already assigned roles
            var alreadyAssigned = repository
                                  .AsQueryable <Models.UserRole>(userRole => distinctUserNames.Contains(userRole.User.UserName))
                                  .Select(userRole => new
            {
                UserId = userRole.User.Id,
                RoleId = userRole.Role.Id
            })
                                  .ToFuture()
                                  .ToList();

            // Validate roles
            var roles = roleIdsQuery.ToList();

            roleNames
            .Where(roleName => roles.All(role => roleName != role.Name))
            .ForEach(roleName =>
                     { throw new ProviderException(string.Format("Role {0} does not exist.", roleName)); });

            // Validate users
            var users = userIdsQuery.ToList();

            userNames
            .Where(userName => users.All(user => userName != user.Name))
            .ForEach(userName =>
                     { throw new ProviderException(string.Format("User {0} does not exist.", userName)); });

            // Add users to roles
            roles
            .ForEach(role => users
                     .ForEach(user =>
            {
                if (!alreadyAssigned.Any(a => a.UserId == user.Id && a.RoleId == role.Id))
                {
                    var userRole = new Models.UserRole
                    {
                        User = repository.AsProxy <Models.User>(user.Id),
                        Role = repository.AsProxy <Models.Role>(role.Id),
                    };
                    repository.Save(userRole);
                }
            }));

            unitOfWork.Commit();
        }
Пример #14
0
        public string Update()
        {
            try
            {
                var infoList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(HttpUtility.UrlDecode(Request.Form.ToString()));

                #region 修改用户基本信息,不修改用户的员工编号和用户所在的部门
                var userID = 0;
                int.TryParse(infoList["userID"].ToString(), out userID);
                var userName   = infoList["userName"].ToString();
                var userEmail  = infoList["userEmail"].ToString();
                var userDuty   = infoList["userDuty"].ToString();
                var userPhone  = infoList["userPhone"].ToString();
                var userMobile = infoList["userMobile"].ToString();
                var userRemark = infoList["userRemark"].ToString();

                var userInfo = db.UserInfo.Find(userID);
                userInfo.UserName   = userName;
                userInfo.UserEmail  = userEmail;
                userInfo.UserDuty   = userDuty;
                userInfo.UserPhone  = userPhone;
                userInfo.UserMobile = userMobile;
                userInfo.UserRemark = userRemark;
                db.SaveChanges();
                #endregion

                #region  除用户已经存在的权限和管理部门
                var userDeptExist = db.UserDept.Where(w => w.UserID == userInfo.UserID).ToList();
                if (userDeptExist.Count != 0)
                {
                    db.UserDept.RemoveRange(userDeptExist);
                }
                var userRoleExist = db.UserRole.Where(w => w.UserID == userInfo.UserID).ToList();
                if (userRoleExist != null)
                {
                    db.UserRole.RemoveRange(userRoleExist);
                }
                db.SaveChanges();
                #endregion

                #region 添加用户所拥有的角色
                Dictionary <string, object> roleList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(infoList["roleList"].ToString());

                foreach (var item in roleList)
                {
                    Models.UserRole userRole = new Models.UserRole();
                    var             roleID   = 0;
                    int.TryParse(item.Value.ToString(), out roleID);
                    userRole.RoleID = roleID;
                    userRole.UserID = userInfo.UserID;
                    db.UserRole.Add(userRole);
                    db.SaveChanges();
                }
                #endregion

                #region 添加用户管理的部门
                Dictionary <string, object> deptList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(infoList["deptList"].ToString());

                foreach (var item in deptList)
                {
                    Models.UserDept userDept          = new Models.UserDept();
                    var             deptIDManagerment = 0;
                    int.TryParse(item.Value.ToString(), out deptIDManagerment);
                    userDept.DeptID = deptIDManagerment;
                    userDept.UserID = userInfo.UserID;
                    db.UserDept.Add(userDept);
                    db.SaveChanges();
                }
                #endregion
                return("ok");
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
Пример #15
0
        public async Task <ActionResult> Create(Student student)
        {
            try
            {
                ViewBag.Grade = new SelectList(Common.Grades(), "ID", "Description");
                Organization org = Session["Organization"] as Organization;
                if (org != null)
                {
                    student.SchoolID    = org.SchoolID;
                    student.DefaultGoal = org.DefaultGoal.ToString();
                    student.Message     = "";
                    student.image       = "";
                    student.Active      = true;
                }



                //RegisterModel distributor = db.Distributors.Find(org.Distributor);
                //student.image=org.

                db.Students.Add(student);

                db.SaveChanges();
                Session["StudentIDs"] = student.StudentID;

                EmailService    email   = new EmailService();
                IdentityMessage details = new IdentityMessage();
                details.Destination = student.EmailAddress;
                details.Subject     = "Welcome Mail! Fundraisingshop.com";
                Dictionary <string, string> param = new Dictionary <string, string>();
                param.Add("<%ID%>", student.ID.ToString());
                param.Add("<%UserID%>", student.StudentID);
                param.Add("<%password%>", student.Password);
                details.Body = ShrdMaster.Instance.buildEmailBody("WelcomeMessage.txt", param);
                await email.SendAsync(details);

                UserRole userrole = new Models.UserRole();
                userrole.UserId = student.ID;
                userrole.RoleId = 2;
                db.UserRoles.Add(userrole);
                db.SaveChanges();
                //Roles.AddUserToRole("Admin", "Student");
                ViewBag.ID = student.ID;
                return(RedirectToAction("personalization", new { studentID = student.StudentID, option = 1 }));
                //return RedirectToAction("Success", new { ID=student.StudentID });
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }


            // return View(student);
        }
Пример #16
0
        private static void AddUsersToRoles(IRepository repository, IUnitOfWork unitOfWork, string[] userNames, string[] roleNames)
        {
            unitOfWork.BeginTransaction();

            // Get roles future query
            var distinctRoleNames = roleNames.Distinct().ToArray();
            var roleIdsQuery = repository
                .AsQueryable<Models.Role>(role => distinctRoleNames.Contains(role.Name))
                .Select(role => new
                                    {
                                        Id = role.Id,
                                        Name = role.Name
                                    })
                .ToFuture();

            // Get users future query
            var distinctUserNames = userNames.Distinct().ToArray();
            var userIdsQuery = repository
                .AsQueryable<Models.User>(user => distinctUserNames.Contains(user.UserName))
                .Select(user => new
                                    {
                                        Id = user.Id,
                                        Name = user.UserName
                                    })
                .ToFuture();

            // Get already assigned roles
            var alreadyAssigned = repository
                .AsQueryable<Models.UserRole>(userRole => distinctUserNames.Contains(userRole.User.UserName))
                .Select(userRole => new
                                        {
                                            UserId = userRole.User.Id,
                                            RoleId = userRole.Role.Id
                                        })
                .ToFuture()
                .ToList();

            // Validate roles
            var roles = roleIdsQuery.ToList();
            roleNames
                .Where(roleName => roles.All(role => roleName != role.Name))
                .ForEach(roleName =>
                    { throw new ProviderException(string.Format("Role {0} does not exist.", roleName)); });

            // Validate users
            var users = userIdsQuery.ToList();
            userNames
                .Where(userName => users.All(user => userName != user.Name))
                .ForEach(userName =>
                    { throw new ProviderException(string.Format("User {0} does not exist.", userName)); });

            // Add users to roles
            roles
                .ForEach(role => users
                    .ForEach(user =>
                        {
                            if (!alreadyAssigned.Any(a => a.UserId == user.Id && a.RoleId == role.Id))
                            {
                                var userRole = new Models.UserRole
                                                   {
                                                       User = repository.AsProxy<Models.User>(user.Id),
                                                       Role = repository.AsProxy<Models.Role>(role.Id), 
                                                   };
                                repository.Save(userRole);
                            }
                        }));

            unitOfWork.Commit();
        }
Пример #17
0
        public string Insert()
        {
            try
            {
                var infoList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(HttpUtility.UrlDecode(Request.Form.ToString()));
                var userNum   = infoList["userNum"].ToString();//员工编号
                var userName  = infoList["userName"].ToString();
                var userEmail = infoList["userEmail"].ToString();
                var deptID    = 0;
                int.TryParse(infoList["deptID"].ToString(), out deptID); //用户所在单位
                var userDuty   = infoList["userDuty"].ToString();        //职务
                var userPhone  = infoList["userPhone"].ToString();       //办公电话
                var userMobile = infoList["userMobile"].ToString();      //手机
                var userRemark = infoList["userRemark"].ToString();

                //按员工编号userNum检查数据库中用户信息是否存在
                Models.UserInfo userInfo = db.UserInfo.Where(w => w.UserNum == userNum).FirstOrDefault();
                if (userInfo == null)//如果用户不存在,直接插入用户信息
                {
                    #region 插入用户基本信息
                    userInfo            = new Models.UserInfo();
                    userInfo.UserName   = userName;
                    userInfo.UserNum    = userNum;
                    userInfo.UserDuty   = userDuty;
                    userInfo.UserState  = 0;
                    userInfo.UserDeptID = deptID;
                    userInfo.UserEmail  = userEmail == string.Empty ? null : userEmail;
                    userInfo.UserPhone  = userPhone;
                    userInfo.UserRemark = userRemark;
                    userInfo.UserMobile = userMobile;

                    db.UserInfo.Add(userInfo);
                    db.SaveChanges();
                    #endregion
                }
                else//如果不存在用户信息,进一步判断用户是否删除。
                {
                    var isDelUser = userInfo.UserState;
                    if (isDelUser == 0)//如果未删除,不能修改用户信息,返回用户已存在,不能修改。
                    {
                        return("用户信息已存在!");
                    }
                    else//如果已删除,更新用户信息,将用户状态更改为未删除状态,更新用户所在部门
                    {
                        #region 更新已标记删除用户的信息,将用户状态更改为未删除
                        userInfo.UserName   = userName;
                        userInfo.UserDuty   = userDuty;
                        userInfo.UserState  = 0;      //将用户状态更改为未删除
                        userInfo.UserDeptID = deptID; //将用户部门更改为选择的部门
                        userInfo.UserEmail  = userEmail == string.Empty ? null : userEmail;
                        userInfo.UserPhone  = userPhone;
                        userInfo.UserRemark = userRemark;
                        userInfo.UserMobile = userMobile;
                        db.SaveChanges();
                        #endregion
                    }
                }

                #region  除用户已经存在的权限和管理部门
                var userDeptExist = db.UserDept.Where(w => w.UserID == userInfo.UserID).ToList();
                if (userDeptExist.Count != 0)
                {
                    db.UserDept.RemoveRange(userDeptExist);
                }
                var userRoleExist = db.UserRole.Where(w => w.UserID == userInfo.UserID).ToList();
                if (userRoleExist != null)
                {
                    db.UserRole.RemoveRange(userRoleExist);
                }
                db.SaveChanges();
                #endregion

                #region 添加用户所拥有的角色
                Dictionary <string, object> roleList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(infoList["roleList"].ToString());
                foreach (var item in roleList)
                {
                    Models.UserRole userRole = new Models.UserRole();
                    var             roleID   = 0;
                    int.TryParse(item.Value.ToString(), out roleID);
                    userRole.RoleID = roleID;
                    userRole.UserID = userInfo.UserID;
                    db.UserRole.Add(userRole);
                    db.SaveChanges();
                }
                #endregion

                #region 添加用户管理的部门
                Dictionary <string, object> deptList =
                    JsonConvert.DeserializeObject <Dictionary <String, Object> >(infoList["deptList"].ToString());
                foreach (var item in deptList)
                {
                    Models.UserDept userDept          = new Models.UserDept();
                    var             deptIDManagerment = 0;
                    int.TryParse(item.Value.ToString(), out deptIDManagerment);
                    userDept.DeptID = deptIDManagerment;
                    userDept.UserID = userInfo.UserID;
                    db.UserDept.Add(userDept);
                    db.SaveChanges();
                }
                #endregion
                return("ok");
            }
            catch (Exception e)
            {
                return(e.Message);
            }
        }