public void AddTest()
        {
            var model = new SysDataPrivilege
            {
                SysId             = "cf9d52cc-0500-4829-9611-fd0056961468",
                DataPrivilegeView = "View1",
                DataPrivilegeRule = "Rule1",
                RecordStatus      = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "jim")
            };

            Console.WriteLine(repository.Add(model));
        }
Beispiel #2
0
        public EntityPrivilegeEnum TryCanOperation(int userId, long entityId, EntityOperationEnum operationEnum)
        {
            if (this.context.FindById <T_User>(new object[] { userId }) == null)
            {
                throw new Exception("当前用户不存在数据库中");
            }
            IOrgProxy         proxy = OrgProxyFactory.GetProxy(this.context);
            IEnumerable <int> currentUserRoleIds = from p in proxy.GetUserRoles(userId) select p.Role_ID;
            SysDataPrivilege  privilege          = (from x in this.context.Where <SysDataPrivilege>(x => (x.EntityId == entityId) && (x.OperationId == ((int)operationEnum)))
                                                    where currentUserRoleIds.Contains <int>(!x.RoleId.HasValue ? 0 : x.RoleId.ToInt())
                                                    orderby x.PrivilegeLevel descending
                                                    select x).FirstOrDefault <SysDataPrivilege>();

            if (null != privilege)
            {
                return((EntityPrivilegeEnum)privilege.PrivilegeLevel.Value);
            }
            return(EntityPrivilegeEnum.NoPermission);
        }
Beispiel #3
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                long?entityId = this.scEntity.SelectedValues.FirstOrDefault().ToLongNullable();
                if (entityId == null)
                {
                    throw new Exception("请选择实体");
                }
                List <int> roleIdList = this.scRole.SelectedValues.Select(p => p.ToIntNullable()).Where(p => p != null).Select(p => p.Value).ToList();
                if (roleIdList.Count == 0)
                {
                    throw new Exception("请选择角色");
                }
                List <int> opList = this.scOperation.SelectedValues.Select(p => p.ToIntNullable()).Where(p => p != null).Select(p => p.Value).ToList();
                if (opList.Count == 0)
                {
                    throw new Exception("请选择操作");
                }
                int?privilege = this.ccPrivilege.SelectedValue.ToIntNullable();
                if (privilege == null)
                {
                    throw new Exception("请选择权限");
                }

                using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
                {
                    using (BizDataContext db = new BizDataContext())
                    {
                        var delList = db.Where <SysDataPrivilege>(p => p.EntityId == entityId.Value)
                                      .Where(p => roleIdList.Contains(p.RoleId)).ToList();
                        foreach (var del in delList)
                        {
                            db.Delete(del);
                        }

                        var insertList = new List <SysDataPrivilege>();
                        foreach (var roleId in roleIdList)
                        {
                            foreach (var op in opList)
                            {
                                SysDataPrivilege data = new SysDataPrivilege()
                                {
                                    RoleId         = roleId,
                                    EntityId       = entityId.Value,
                                    OperationId    = op,
                                    PrivelegeLevel = privilege.Value,
                                };
                                insertList.Add(data);
                            }
                        }
                        db.BatchInsert(insertList);
                    }
                    ts.Complete();
                }
                Clear();
                this.AjaxAlert("保存成功");
            }
            catch (Exception ex)
            {
                this.AjaxAlert(ex);
            }
        }