Beispiel #1
0
        protected bool AddUserRole(MasterUser objMasterUser, string role)
        {
            MasterRole objMasterRole = new UsersRoleDAL().GetRoles().Where(x => x.RoleID == Convert.ToInt32(role)).FirstOrDefault();

            if (objMasterRole != null)
            {
                //back-end level;membership checking
                if (!Roles.IsUserInRole(objMasterUser.UserName, objMasterRole.RoleName))
                {
                    string[] getRoles = Roles.GetRolesForUser(objMasterUser.UserName);
                    if (getRoles.Count() > 0)
                    {
                        Roles.RemoveUserFromRoles(objMasterUser.UserName, getRoles);
                    }
                    Roles.AddUserToRole(objMasterUser.UserName, objMasterRole.RoleName);
                }

                //local level checking
                JuncUserRole objUserRole = new JuncUserRole();
                objUserRole.RoleID = Convert.ToInt32(role);
                objUserRole.UserID = objMasterUser.UserID;
                objUserRole.Status = "A";

                if (new UsersRoleDAL().InsertUserRole(objUserRole))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Beispiel #2
0
        public static string OnSubmit(string roleid, string dlbox, string desc, string stats)
        {
            string json;
            var    ReturnObj = new { status = "", result = "" };

            try
            {
                MasterRole roleObj = new MasterRole();
                roleObj.RoleID      = Convert.ToInt32(roleid);
                roleObj.RoleName    = new UsersRoleDAL().GetRoles().Where(x => x.RoleID == Convert.ToInt32(roleid)).Select(y => y.RoleName).FirstOrDefault();
                roleObj.Description = desc.Trim();
                roleObj.RoleStatus  = new Helper().GetItemStatusEnumValueByName(stats.Trim());

                List <string> RolesUname = Roles.GetUsersInRole(roleObj.RoleName).ToList();

                string[]      usersSelected = dlbox.Split(',');
                List <string> SelectedUname = new List <string>();

                if (usersSelected.Count() == 0 || dlbox == "null")
                {
                    SelectedUname = new List <string>();
                }
                else
                {
                    for (int u = 0; u < usersSelected.Count(); u++)
                    {
                        SelectedUname.Add(new UsersDAL().GetUserDataByID(Convert.ToInt32(usersSelected[u])).UserName);
                    }
                }

                if (SelectedUname.Count() > RolesUname.Count())
                {
                    List <string> OnlyInSelectedList = SelectedUname.Except(RolesUname).ToList();
                    foreach (string username in OnlyInSelectedList)
                    {
                        string[] getRoles = Roles.GetRolesForUser(username);
                        if (getRoles.Count() > 0)
                        {
                            Roles.RemoveUserFromRoles(username, getRoles);
                            if (!new UsersRoleDAL().DeleteUserRole(username, getRoles))
                            {
                                throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                            }
                        }
                        Roles.AddUserToRole(username, roleObj.RoleName);

                        //add to local db
                        JuncUserRole userrole = new JuncUserRole();
                        userrole.RoleID = Convert.ToInt32(roleid);
                        userrole.UserID = DAL.UsersDAL.StaticUserId(0, username).UserID;
                        userrole.Status = new Helper().GetItemStatusEnumValueByName(stats.Trim());
                        if (!new UsersRoleDAL().InsertUserRole(userrole))
                        {
                            throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                        }
                    }

                    //Update MasterRole
                    if (new UsersRoleDAL().UpdateMasterRole(roleObj))
                    {
                        ReturnObj = new { status = "Success", result = "User successfully added to roles." };
                    }
                    else
                    {
                        throw new Exception("Fail to authenticated selected users-list & role. Please re-enter your values and try again.");
                    }
                }
                else
                {
                    if (SelectedUname.Count() == RolesUname.Count())
                    {
                        //double check
                        List <string> OnlyInSelectedList = SelectedUname.Except(RolesUname).ToList();
                        foreach (string username in OnlyInSelectedList)
                        {
                            string[] getRoles = Roles.GetRolesForUser(username);
                            if (getRoles.Count() > 0)
                            {
                                Roles.RemoveUserFromRoles(username, getRoles);
                                if (!new UsersRoleDAL().DeleteUserRole(username, getRoles))
                                {
                                    throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                                }
                            }
                            Roles.AddUserToRole(username, roleObj.RoleName);

                            //add to local db
                            JuncUserRole userrole = new JuncUserRole();
                            userrole.RoleID = Convert.ToInt32(roleid);
                            userrole.UserID = DAL.UsersDAL.StaticUserId(0, username).UserID;
                            userrole.Status = new Helper().GetItemStatusEnumValueByName(stats.Trim());
                            if (!new UsersRoleDAL().InsertUserRole(userrole))
                            {
                                throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                            }
                        }

                        List <string> UnusedUserList = RolesUname.Except(SelectedUname).ToList();
                        foreach (string username in UnusedUserList)
                        {
                            string[] getRoles = Roles.GetRolesForUser(username);
                            if (getRoles.Count() > 0)
                            {
                                Roles.RemoveUserFromRoles(username, getRoles);
                                if (!new UsersRoleDAL().DeleteUserRole(username, getRoles))
                                {
                                    throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                                }
                            }
                        }
                    }
                    else
                    {
                        List <string> UnusedUserList = RolesUname.Except(SelectedUname).ToList();
                        foreach (string username in UnusedUserList)
                        {
                            string[] getRoles = Roles.GetRolesForUser(username);
                            if (getRoles.Count() > 0)
                            {
                                Roles.RemoveUserFromRoles(username, getRoles);
                                if (!new UsersRoleDAL().DeleteUserRole(username, getRoles))
                                {
                                    throw new Exception("Fail to authenticated selected users-list. Please re-enter your values and try again.");
                                }
                            }
                        }
                    }

                    //Update MasterRole
                    if (new UsersRoleDAL().UpdateMasterRole(roleObj))
                    {
                        ReturnObj = new { status = "Success", result = "User successfully added to roles." };
                    }
                    else
                    {
                        throw new Exception("Fail to authenticated selected users-list & role. Please re-enter your values and try again.");
                    }
                }
            }
            catch (Exception ex)
            {
                ReturnObj = new { status = "Fail", result = "An error occurred. Error Message: " + ex.Message };
            }

            return(json = JsonConvert.SerializeObject(ReturnObj, Formatting.Indented));
        }