Example #1
0
        public ActionResult AssignedRoles(int id)
        {
            if (id == 0)
            {
                return(Json(""));
            }

            var         context = new RSMDataModelDataContext();
            JCLRoleRule rule    = (from r in context.JCLRoleRules
                                   where r.ID == id
                                   select r).Single();

            var jsonAssLevels = new
            {
                total   = 1,
                page    = 1,
                records = rule.JCLRoles.Count,
                rows    = (
                    from r in rule.JCLRoles
                    select new
                {
                    i = r.ID,
                    cell = new string[] {
                        r.RoleID.ToString(), r.Role.RoleName, r.Role.RoleDesc.ToString()
                    }
                }).ToArray()
            };

            return(Json(jsonAssLevels));
        }
Example #2
0
        public ActionResult Clone(int id)
        {
            RSMDataModelDataContext context = new RSMDataModelDataContext();

            JCLRoleRule source = (from j in context.JCLRoleRules
                                  where j.ID == id
                                  select j).Single();

            JCLRoleRule dest = new JCLRoleRule();
            JCLRole     newRole;

            dest.JobCode  = source.JobCode;
            dest.DeptID   = source.DeptID;
            dest.Location = source.Location;

            context.JCLRoleRules.InsertOnSubmit(dest);
            context.SubmitChanges();


            foreach (JCLRole role in source.JCLRoles)
            {
                newRole             = new JCLRole();
                newRole.RoleID      = role.RoleID;
                newRole.JCLRoleRule = dest;
                context.JCLRoles.InsertOnSubmit(newRole);
            }

            context.SubmitChanges();

            return(RedirectToAction("Edit", new { id = dest.ID, message = "You are now editing a new copy of your previous rule." }));
        }
Example #3
0
        public ActionResult Create()
        {
            JCLRoleRule             rule    = new JCLRoleRule();
            RSMDataModelDataContext context = new RSMDataModelDataContext();

            rule.JobCode = "0";
            rule.DeptID  = "0";

            ViewBag.Model = rule;

            List <Job> jobs;
            //bool jobCodesFirst = bool.Parse(ConfigurationManager.AppSettings["JobCodesFirst"]);
            var jobCodesFirst = Service.Library.Controllers.Settings.GetValueAsBool("R1SM", "JobCodesFirst");

            if (jobCodesFirst)
            {
                jobs = (from j in context.Jobs
                        select j).OrderBy("JobCode ASC").ToList();
            }
            else
            {
                jobs = (from j in context.Jobs
                        select j).OrderBy("JobDescription ASC").ToList();
            }

            ViewBag.JobCodesFirst = jobCodesFirst;
            ViewBag.Jobs          = jobs;


            List <Department> depts = (from d in context.Departments
                                       select d).OrderBy("DeptDescr ASC").ToList();

            ViewBag.Depts = depts;


            List <Location> locs = (from l in context.Locations
                                    select l).OrderBy("LocationName ASC").ToList();

            ViewBag.Locs = locs;


            ViewBag.AvailRolesURL = Url.Action("AvailableRoles", new { ID = 0 });
            ViewBag.AssRolesURL   = Url.Action("AssignedRoles", new { ID = 0 });


            return(View(rule));
        }
        public ActionResult Edit(int id, string message = null)
        {
            RSMDataModelDataContext context = new RSMDataModelDataContext();

            JCLRoleRule model = (from j in context.JCLRoleRules
                                 where j.ID == id
                                 select j).Single();

            ViewBag.Model = model;

            List <Job> jobs;
            bool       jobCodesFirst = bool.Parse(ConfigurationManager.AppSettings["JobCodesFirst"]);

            if (jobCodesFirst)
            {
                jobs = (from j in context.Jobs
                        select j).OrderBy("JobCode ASC").ToList();
            }
            else
            {
                jobs = (from j in context.Jobs
                        select j).OrderBy("JobDescription ASC").ToList();
            }

            ViewBag.JobCodesFirst = jobCodesFirst;
            ViewBag.Jobs          = jobs;



            List <Department> depts = (from d in context.Departments
                                       select d).OrderBy("DeptDescr ASC").ToList();

            ViewBag.Depts = depts;


            List <Location> locs = (from l in context.Locations
                                    select l).OrderBy("LocationName ASC").ToList();

            ViewBag.Locs    = locs;
            ViewBag.Message = message;

            ViewBag.AvailRolesURL = Url.Action("AvailableRoles", new { ID = id });
            ViewBag.AssRolesURL   = Url.Action("AssignedRoles", new { ID = id });

            return(View(model));
        }
Example #5
0
        int UpdateRule(int id, string jobCode, string deptID, int location, List <GridDataRow> roles)
        {
            JCLRoleRule rule;
            var         context = new RSMDataModelDataContext();
            var         action  = "modified";

            if (id > 0)
            {
                rule = (from r in context.JCLRoleRules
                        where r.ID == id
                        select r).Single();
            }
            else
            {
                action = "created";
                rule   = new JCLRoleRule();
                context.JCLRoleRules.InsertOnSubmit(rule);
            }

            rule.JobCode  = jobCode;
            rule.DeptID   = deptID;
            rule.Location = location;

            var thisRuleRoles = from r in context.JCLRoles
                                where r.RuleID == id
                                select r;

            if (thisRuleRoles.Any())
            {
                context.JCLRoles.DeleteAllOnSubmit(thisRuleRoles);
            }

            context.SubmitChanges();

            foreach (var row in roles)
            {
                var role = new JCLRole {
                    RoleID = int.Parse(row.ID), RuleID = id
                };

                rule.JCLRoles.Add(role);
            }

            context.SubmitChanges();

            //bool reqApproval = bool.Parse( ConfigurationManager.AppSettings["RequireAccessApproval"]);
            var reqApproval = Settings.GetValueAsBool("R1SM", "RequireAccessApproval");

            var engine = new RoleAssignmentEngine(context);
            var count  = engine.FlagPeopleWithRule(rule.ID, reqApproval);

            //context.Syslog(RSMDataModelDataContext.LogSources.USER,
            //               RSMDataModelDataContext.LogSeverity.INFO,
            //               string.Format("{0} {1} rule for {2}, {3}, {4}",
            //                             User.Identity.Name,
            //                             action,
            //                             rule.Job.DisplayName,
            //                             rule.Departments.DisplayName,
            //                             rule.Locations.LocationName),
            //               string.Format("The {0} associates affected by last rule edit will be processed by the rule engine next pass.", count));

            var logger = new Logger();

            logger.LogUserActivity(Severity.Informational,
                                   string.Format("{0} {1} rule for {2}, {3}, {4}",
                                                 User.Identity.Name,
                                                 action,
                                                 rule.Job.DisplayName,
                                                 rule.Departments.DisplayName,
                                                 rule.Locations.LocationName),
                                   string.Format("The {0} associates affected by last rule edit will be processed by the rule engine next pass.", count));

            return(rule.ID);
        }