Esempio n. 1
0
        /// <summary>
        /// 保存应用
        /// </summary>
        /// <param name="badge"></param>
        /// <param name="item"></param>
        public void SaveApplication(KeyValuePair <string, string> user, RightApplication item)
        {
            if (item.ApplicationId == ConfigurationManager.AppSettings["RightApplicationId"])
            {
                throw new InfoException("不能编辑权限管理应用");
            }

            db.BeginTransaction();
            try
            {
                if (string.IsNullOrEmpty(item.ApplicationId))
                {
                    if (db.Exists <RightApplication>("ApplicationName = @0", item.ApplicationName))
                    {
                        throw new InfoException("应用名称【{0}】已存在", item.ApplicationName);
                    }
                    item.ApplicationId = Guid.NewGuid().ToString();
                    db.Insert(item);
                    // 新建应用时,初始化创建权限对象【权限角色】、【权限分配】【权限查询】及其对象操作
                    var object1 = new RightObject
                    {
                        ApplicationId = item.ApplicationId,
                        ObjectName    = "权限分配"
                    };
                    var objectOperation1 = new RightObjectOperation
                    {
                        ObjectId      = object1.Id,
                        OperationName = "查看"
                    };
                    var objectOperation2 = new RightObjectOperation
                    {
                        ObjectId      = object1.Id,
                        OperationName = "保存"
                    };
                    db.Insert(object1);
                    db.Insert(objectOperation1);
                    db.Insert(objectOperation2);
                    var object2 = new RightObject
                    {
                        ApplicationId = item.ApplicationId,
                        ObjectName    = "权限角色"
                    };
                    var objectOperation3 = new RightObjectOperation
                    {
                        ObjectId      = object2.Id,
                        OperationName = "查看"
                    };
                    var objectOperation4 = new RightObjectOperation
                    {
                        ObjectId      = object2.Id,
                        OperationName = "新增&编辑"
                    };
                    var objectOperation5 = new RightObjectOperation
                    {
                        ObjectId      = object2.Id,
                        OperationName = "删除"
                    };
                    db.Insert(object2);
                    db.Insert(objectOperation3);
                    db.Insert(objectOperation4);
                    db.Insert(objectOperation5);
                    var object3 = new RightObject
                    {
                        ApplicationId = item.ApplicationId,
                        ObjectName    = "权限查询"
                    };
                    var objectOperation6 = new RightObjectOperation
                    {
                        ObjectId      = object2.Id,
                        OperationName = "查询"
                    };
                    db.Insert(object3);
                    db.Insert(objectOperation6);
                    logService.WriteInsertOperateLog(user, item.ApplicationId, item.Id, item);
                }
                else
                {
                    var oldItem = GetApplication(item.ApplicationId);
                    if (oldItem == null)
                    {
                        throw new InfoException("【{0}】记录不存在", item.Id);
                    }
                    item.Id = oldItem.Id;
                    db.Update(item);
                    logService.WriteUpdateOperateLog(user, item.ApplicationId, item.Id, oldItem, item);
                }
                db.CompleteTransaction();
            }
            catch (Exception e)
            {
                db.AbortTransaction();
                throw e;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 保存对象操作
        /// </summary>
        /// <param name="badge"></param>
        /// <param name="applicationId"></param>
        /// <param name="item"></param>
        public void SaveObjectOperation(KeyValuePair <string, string> user, string applicationId, RightObjectOperation item)
        {
            if (applicationId == ConfigurationManager.AppSettings["RightApplicationId"])
            {
                throw new InfoException("不能新增/编辑权限管理应用的权限对象操作");
            }

            db.BeginTransaction();
            try
            {
                if (db.Exists <RightObjectOperation>("ObjectId = @0 AND OperationName = @1 and Id != @2", item.ObjectId, item.OperationName, item.Id))
                {
                    throw new InfoException("对象操作【{0}】已存在", item.OperationName);
                }
                if (db.IsNew(item))
                {
                    db.Insert(item);
                    logService.WriteInsertOperateLog(user, applicationId, item.Id, item);
                }
                else
                {
                    var oldItem = db.SingleOrDefault <RightObjectOperation>(item.Id);
                    if (oldItem == null)
                    {
                        throw new InfoException("【{0}】记录不存在", item.Id);
                    }
                    var objectItem = db.SingleOrDefault <RightObject>(item.ObjectId);
                    if (objectItem.ObjectName == "权限分配" || objectItem.ObjectName == "权限角色" || objectItem.ObjectName == "权限查询")
                    {
                        throw new InfoException("不能编辑保留权限对象【{0}】的操作", objectItem.ObjectName);
                    }
                    db.Update(item);
                    logService.WriteUpdateOperateLog(user, applicationId, item.Id, oldItem, item);
                }
                db.CompleteTransaction();
            }
            catch (Exception e)
            {
                db.AbortTransaction();
                throw e;
            }
        }