/// <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; } }
/// <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; } }