Example #1
0
        public ActionResult DeleteConfirmed(int id, RoleEditModel roleEdit)
        {
            try
            {
                var rolePerson = from p in db.Person_Role
                                 where p.Role_ID == id
                                 select p;

                ViewBag.ErrorMsg     = "Are you sure you want to delete?";
                TempData["Disabled"] = false;
                if (rolePerson.Count() != 0)
                {
                    ViewBag.ErrorMsg     = "Role cannot be deleted becuase there are persons assigned to the role";
                    TempData["Disabled"] = true;
                    return(View(roleEdit));
                }

                Role r = db.Roles.Find(id);

                if (roleEdit.role == null)
                {
                    return(HttpNotFound());
                }
                if (roleEdit.role.Role_Name == "Super Admin")
                {
                    ViewBag.ErrorMsg     = "'Super Admin' role cannot be deleted";
                    TempData["Disabled"] = true;
                    return(View(roleEdit));
                }
                if (roleEdit.role.Role_Name == "Admin")
                {
                    ViewBag.ErrorMsg     = "'Admin' role cannot be deleted";
                    TempData["Disabled"] = true;
                    return(View(roleEdit));
                }

                db.Roles.Remove(r);

                foreach (var o in roleEdit.actionList)
                {
                    Role_Action ra = db.Role_Action.Find(o.RoleAction_ID);
                    db.Role_Action.Remove(ra);
                }
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View(roleEdit));
            }
        }
Example #2
0
        public ActionResult Create(RoleModel role)
        {
            var       RoleAction = db.Role_Action;
            RoleModel roleModel  = new RoleModel();

            roleModel.RoleActions = new List <RoleActionModel>();
            foreach (var a in RoleAction)
            {
                RoleActionModel ra = new RoleActionModel();
                ra.CreateInd  = a.Create_Ind;
                ra.ReadInd    = a.Read_Ind;
                ra.UpdateInd  = a.Update_Ind;
                ra.DeleteInd  = a.Delete_Ind;
                ra.ActionId   = a.Action_ID;
                ra.RoleId     = a.Role_ID;
                ra.ActionName = a.Action.Action_Name;
                roleModel.RoleActions.Add(ra);
            }
            var distinctActions =
                roleModel.RoleActions.GroupBy(x => x.ActionId)
                .Select(g => g.FirstOrDefault())
                .ToList();

            roleModel.RoleActions = distinctActions;
            try
            {
                int  Count  = 0;
                bool create = true;
                bool read   = true;
                bool update = true;
                bool delete = true;
                ViewBag.ErrorMsg = "";
                var query = (from q in db.Roles
                             where q.Role_Name.ToLower() == role.RoleName.ToLower()
                             select q);
                if (query.Count() != 0)
                {
                    ViewBag.ErrorMsg = "The role name exists, please provide a different role name";
                    return(View(roleModel));
                }
                Role r = new Role();
                r.Role_Name = role.RoleName;
                db.Roles.Add(r);
                foreach (var o in role.RoleActions)
                {
                    Role_Action ra = new Role_Action();
                    ra.Action_ID  = o.ActionId;
                    ra.Role_ID    = r.Role_ID;
                    ra.Create_Ind = o.CreateInd;
                    ra.Read_Ind   = o.ReadInd;
                    ra.Update_Ind = o.UpdateInd;
                    ra.Delete_Ind = o.DeleteInd;
                    db.Role_Action.Add(ra);
                    create = ra.Create_Ind;
                    if (create == false)
                    {
                        Count++;
                    }
                    read = ra.Read_Ind;
                    if (read == false)
                    {
                        Count++;
                    }
                    update = ra.Update_Ind;
                    if (update == false)
                    {
                        Count++;
                    }
                    delete = ra.Delete_Ind;
                    if (delete == false)
                    {
                        Count++;
                    }
                    if (Count == (role.RoleActions.Count() * 4))
                    {
                        ViewBag.Error = "Role must be assigned at least 1 action";
                        return(View(roleModel));
                    }
                }
                db.SaveChanges();

                return(RedirectToAction("Index", "Role"));
            }
            catch
            {
                return(View(roleModel));
            }
        }
Example #3
0
        public ActionResult Edit(int id, RoleEditModel roleEdit)
        {
            int  Count  = 0;
            bool create = true;
            bool read   = true;
            bool update = true;
            bool delete = true;

            try
            {
                ViewBag.ErrorMsg = "";
                var query = (from q in db.Roles
                             where q.Role_Name.ToLower() == roleEdit.role.Role_Name.ToLower()
                             select q);
                if (query.Count() >= 2)
                {
                    ViewBag.ErrorMsg = "The role name exists, please provide a different role name";
                    RoleEditModel roleModel = new RoleEditModel();
                    roleModel.role = db.Roles.Find(id);
                    if (roleModel.role == null)
                    {
                        return(HttpNotFound());
                    }
                    roleModel.actionList = db.Role_Action.Where(
                        i => i.Role_ID == id).ToList();
                    return(View(roleModel));
                }
                Role r = db.Roles.Find(id);
                r.Role_Name       = roleEdit.role.Role_Name;
                db.Entry(r).State = EntityState.Modified;

                foreach (var o in roleEdit.actionList)
                {
                    Role_Action ra = db.Role_Action.Find(o.RoleAction_ID);
                    ra.Create_Ind      = o.Create_Ind;
                    ra.Read_Ind        = o.Read_Ind;
                    ra.Update_Ind      = o.Update_Ind;
                    ra.Delete_Ind      = o.Delete_Ind;
                    db.Entry(ra).State = EntityState.Modified;

                    if (create == false)
                    {
                        Count++;
                    }
                    read = o.Read_Ind;
                    if (read == false)
                    {
                        Count++;
                    }
                    update = o.Update_Ind;
                    if (update == false)
                    {
                        Count++;
                    }
                    delete = o.Delete_Ind;
                    if (delete == false)
                    {
                        Count++;
                    }
                    if (Count == (roleEdit.actionList.Count() * 4))
                    {
                        ViewBag.Error = "Role must be assigned at least 1 action";
                        RoleEditModel roleModel = new RoleEditModel();
                        roleModel.role = db.Roles.Find(id);
                        if (roleModel.role == null)
                        {
                            return(HttpNotFound());
                        }
                        roleModel.actionList = db.Role_Action.Where(
                            i => i.Role_ID == id).ToList();
                        return(View(roleModel));
                    }
                }
                db.SaveChanges();
                return(RedirectToAction("Index", "Role"));
            }
            catch
            {
                RoleEditModel roleModel = new RoleEditModel();
                roleModel.role = db.Roles.Find(id);
                if (roleModel.role == null)
                {
                    return(HttpNotFound());
                }
                roleModel.actionList = db.Role_Action.Where(
                    i => i.Role_ID == id).ToList();
                return(View(roleModel));
            }
        }