Esempio n. 1
0
        public ActionResult Create(Authority authority)
        {
            var json = new JsonResult();

            try
            {
                using (var ctx = new GlsunViewEntities())
                {
                    using (var tran = new TransactionScope())//开启事务
                    {
                        var loginUser = (from u in ctx.User
                                         where u.ULoginName == HttpContext.User.Identity.Name
                                         select u).FirstOrDefault();

                        authority.CreatorID    = loginUser.ID;
                        authority.CreationTime = DateTime.Now;
                        ctx.Authority.Add(authority);

                        //给模块添加新权限--通用权限才添加

                        if (authority.AIsCommon == true)
                        {
                            var moduleList = ctx.Module.Where(m => m.MParentID != 0 && m.MType == "menu");
                            foreach (var module in moduleList)
                            {
                                ModuleAuthority ma = new ModuleAuthority
                                {
                                    AID          = authority.ID,
                                    MID          = module.ID,
                                    CreatorID    = loginUser.ID,
                                    CreationTime = DateTime.Now
                                };
                                ctx.ModuleAuthority.Add(ma);
                            }
                        }
                        ctx.SaveChanges();

                        tran.Complete();//必须调用.Complete(),不然数据不会保存
                    }//出了using代码块如果还没调用Complete(),所有操作就会自动回滚
                }

                json.Data = new { Code = "", Data = "", Message = "保存成功" };
            }
            catch (Exception ex)
            {
                json.Data = new { Code = "Exception", Data = "", Message = ex.Message };
            }
            return(json);
        }
Esempio n. 2
0
        public JsonResult Create(Module module)
        {
            var json = new JsonResult();

            try
            {
                using (var ctx = new GlsunViewEntities())
                {
                    using (var tran = new TransactionScope())
                    {
                        var loginUser = (from u in ctx.User
                                         where u.ULoginName == HttpContext.User.Identity.Name
                                         select u).FirstOrDefault();
                        if (loginUser != null)
                        {
                            module.CreatorID    = loginUser.ID;
                            module.CreationTime = DateTime.Now;
                        }

                        ctx.Module.Add(module);
                        //添加操作权限
                        if (module.MParentID != 0 && module.MType == "menu")
                        {
                            foreach (var e in ctx.Authority.Where(a => a.IsEnabled.Value && a.AIsCommon.Value))
                            {
                                ModuleAuthority ma = new ModuleAuthority
                                {
                                    AID          = e.ID,
                                    MID          = module.ID,
                                    CreatorID    = loginUser.ID,
                                    CreationTime = DateTime.Now
                                };
                                ctx.ModuleAuthority.Add(ma);
                            }
                        }
                        ctx.SaveChanges();
                        tran.Complete();  //必须调用.Complete(),不然数据不会保存
                    }//出了using代码块如果还没调用Complete(),所有操作就会自动回滚
                }
                json.Data = new { Code = "", Data = "", Message = "保存成功" };
            }
            catch (Exception ex)
            {
                json.Data = new { Code = "Exception", Data = "", Message = ex.Message };
            }
            return(json);
        }
Esempio n. 3
0
        public ActionResult Authority(ModuleAuth moduleAuth)
        {
            var json = new JsonResult();

            try
            {
                using (var ctx = new GlsunViewEntities())
                {
                    var loginUser = (from u in ctx.User
                                     where u.ULoginName == HttpContext.User.Identity.Name
                                     select u).FirstOrDefault();
                    //删除未选中的
                    IEnumerable <Authority> unselected = null;
                    if (moduleAuth.OwnAuthorityID == null)
                    {
                        unselected = ctx.Authority.ToList();
                    }
                    else
                    {
                        unselected = ctx.Authority.Where(a => !moduleAuth.OwnAuthorityID.Contains(a.ID));
                    }
                    foreach (var e in unselected)
                    {
                        var maDelete = (from ma in ctx.ModuleAuthority
                                        where ma.AID == e.ID && ma.MID == moduleAuth.ModuleID
                                        select ma).FirstOrDefault();
                        if (maDelete != null)
                        {
                            ctx.ModuleAuthority.Remove(maDelete);
                        }
                    }
                    //添加选中的
                    if (moduleAuth.OwnAuthorityID != null)
                    {
                        foreach (var id in moduleAuth.OwnAuthorityID)
                        {
                            var maAdd = (from ma in ctx.ModuleAuthority
                                         where ma.AID == id && ma.MID == moduleAuth.ModuleID
                                         select ma).FirstOrDefault();
                            //不存在则添加
                            if (maAdd == null)
                            {
                                ModuleAuthority ma = new ModuleAuthority
                                {
                                    MID          = moduleAuth.ModuleID,
                                    AID          = id,
                                    CreatorID    = loginUser.ID,
                                    CreationTime = DateTime.Now
                                };
                                ctx.ModuleAuthority.Add(ma);
                            }
                        }
                    }
                    ctx.SaveChanges();
                }
                json.Data = new { Code = "", Data = moduleAuth, Message = "保存成功" };
            }
            catch (Exception ex)
            {
                json.Data = new { Code = "Exception", Data = moduleAuth, Message = ex.Message };
            }
            return(json);
        }
Esempio n. 4
0
        public ActionResult Edit(Authority authority)
        {
            var json = new JsonResult();

            try
            {
                using (var ctx = new GlsunViewEntities())
                {
                    using (var tran = new TransactionScope())
                    {
                        var loginUser = (from u in ctx.User
                                         where u.ULoginName == HttpContext.User.Identity.Name
                                         select u).FirstOrDefault();

                        var authModify = ctx.Authority.Find(authority.ID);
                        if (authModify != null)
                        {
                            var moduleList = ctx.Module.Where(m => m.MParentID != 0 && m.MType == "menu");
                            //通用选项修改
                            if (authority.AIsCommon != authModify.AIsCommon)
                            {
                                //改为通用,添加
                                if (authority.AIsCommon == true)
                                {
                                    foreach (var module in moduleList)
                                    {
                                        ModuleAuthority ma = new ModuleAuthority
                                        {
                                            AID          = authority.ID,
                                            MID          = module.ID,
                                            CreatorID    = loginUser.ID,
                                            CreationTime = DateTime.Now
                                        };
                                        ctx.ModuleAuthority.Add(ma);
                                    }
                                }
                                else//否则删除
                                {
                                    foreach (var module in moduleList)
                                    {
                                        var maDelete = (from ma in ctx.ModuleAuthority
                                                        where ma.AID == authority.ID && ma.MID == module.ID
                                                        select ma).FirstOrDefault();
                                        if (maDelete != null)
                                        {
                                            ctx.ModuleAuthority.Remove(maDelete);
                                        }
                                    }
                                }
                            }
                            authModify.AName       = authority.AName;
                            authModify.ACode       = authority.ACode;
                            authModify.AType       = authority.AType;
                            authModify.AIcon       = authority.AIcon;
                            authModify.AIconType   = authority.AIconType;
                            authModify.AClassName  = authority.AClassName;
                            authModify.AShowNumber = authority.AShowNumber;
                            authModify.AIsCommon   = authority.AIsCommon;
                            authModify.IsEnabled   = authority.IsEnabled;

                            authority.EditorID    = loginUser.ID;
                            authority.EditingTime = DateTime.Now;
                        }
                        ctx.SaveChanges();
                        tran.Complete();
                    }
                }

                json.Data = new { Code = "", Data = "", Message = "保存成功" };
            }
            catch (Exception ex)
            {
                json.Data = new { Code = "Exception", Data = "", Message = ex.Message };
            }
            return(json);
        }