private Scope GetScope(Scope request) { var id = request?.Id; Scope ret = null; var query = DocQuery.ActiveQuery ?? Execute; DocPermissionFactory.SetSelect <Scope>(currentUser, "Scope", request.Select); DocEntityScope entity = null; if (id.HasValue) { entity = DocEntityScope.Get(id.Value); } if (null == entity) { throw new HttpError(HttpStatusCode.NotFound, $"No Scope found for Id {id.Value}"); } if (!DocPermissionFactory.HasPermission(entity, currentUser, DocConstantPermission.VIEW)) { throw new HttpError(HttpStatusCode.Forbidden, "You do not have VIEW permission for this route."); } ret = entity?.ToDto(); return(ret); }
public Scope Post(ScopeCopy request) { Scope ret = null; using (Execute) { Execute.Run(ssn => { var entity = DocEntityScope.Get(request?.Id); if (null == entity) { throw new HttpError(HttpStatusCode.NoContent, "The COPY request did not succeed."); } if (!DocPermissionFactory.HasPermission(entity, currentUser, DocConstantPermission.ADD)) { throw new HttpError(HttpStatusCode.Forbidden, "You do not have ADD permission for this route."); } var pApp = entity.App; var pBindings = entity.Bindings.ToList(); var pBroadcasts = entity.Broadcasts.ToList(); var pClient = entity.Client; var pDelete = entity.Delete; var pDocumentSet = entity.DocumentSet; var pEdit = entity.Edit; var pHelp = entity.Help.ToList(); var pIsGlobal = entity.IsGlobal; var pScopedComments = entity.ScopedComments.ToList(); var pScopedFiles = entity.ScopedFiles.ToList(); var pScopedTags = entity.ScopedTags.ToList(); var pSynonyms = entity.Synonyms.ToList(); var pTeam = entity.Team; var pType = entity.Type; var pUser = entity.User; var pVariableRules = entity.VariableRules.ToList(); var pView = entity.View; var pWorkflows = entity.Workflows.ToList(); var copy = new DocEntityScope(ssn) { Hash = Guid.NewGuid() , App = pApp , Client = pClient , Delete = pDelete , DocumentSet = pDocumentSet , Edit = pEdit , IsGlobal = pIsGlobal , Team = pTeam , Type = pType , User = pUser , View = pView }; foreach (var item in pBindings) { entity.Bindings.Add(item); } foreach (var item in pBroadcasts) { entity.Broadcasts.Add(item); } foreach (var item in pHelp) { entity.Help.Add(item); } foreach (var item in pScopedComments) { entity.ScopedComments.Add(item); } foreach (var item in pScopedFiles) { entity.ScopedFiles.Add(item); } foreach (var item in pScopedTags) { entity.ScopedTags.Add(item); } foreach (var item in pSynonyms) { entity.Synonyms.Add(item); } foreach (var item in pVariableRules) { entity.VariableRules.Add(item); } foreach (var item in pWorkflows) { entity.Workflows.Add(item); } copy.SaveChanges(DocConstantPermission.ADD); ret = copy.ToDto(); }); } return(ret); }