Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }