public ActionResult Save(string id, string descriptionResourceName, string name, string remark, string resourceId, int operators) { ResourceDescription resourceDescription = OrnamentContext.ResourceManager.Configuration() .Get(descriptionResourceName); Permission permission; if (!string.IsNullOrEmpty(id)) { permission = _memberShipFactory.CreatePermissionDao().Get(id); } else { permission = Permission.CreatePermission(resourceDescription.ValueType); } IResourceDao dao = _memberShipFactory.CreateResourceDao(); permission.Name = name; permission.Remark = remark; permission.Resource = dao.GetResourceByStringId(resourceDescription.ValueType, resourceId); permission.Operator = operators; _memberShipFactory.CreatePermissionDao().SaveOrUpdate(permission); return(RedirectToAction("Index")); }
/// <summary> /// 检查当前用户是否有资源的操作权限 /// </summary> /// <param name="currentUser"></param> /// <param name="resType">资源类型</param> /// <param name="id">资源的Id</param> /// <param name="operator">操作</param> /// <returns>有操作权限返回true,否则返回false</returns> /// <exception cref="OrnamentException">通过资源Id,无法找到资源的时候,就会发出这个异常</exception> /// <remarks> /// </remarks> public bool HasRight(User currentUser, Type resType, string id, Enum @operator) { object res; try { res = _factory.CreateResourceDao().Load(resType, id); } catch (Exception ex) { throw new OrnamentException(String.Format("Can't find the resource {0}, id={1}", resType.FullName, id), ex); } return(HasRight(currentUser, res, @operator)); }