SenseNet.Search.QueryExecutor2.IsPermitted C# (CSharp) Метод

IsPermitted() защищенный Метод

protected IsPermitted ( Lucene.Net.Documents.Document doc, IUser user, bool isCurrentUser ) : bool
doc Lucene.Net.Documents.Document
user IUser
isCurrentUser bool
Результат bool
        protected bool IsPermitted(Document doc, IUser user, bool isCurrentUser)
        {
            var path = doc.Get(LucObject.FieldName.Path);

            var createdById = IntegerIndexHandler.ConvertBack(doc.Get(LucObject.FieldName.CreatedById));
            var lastModifiedById = IntegerIndexHandler.ConvertBack(doc.Get(LucObject.FieldName.ModifiedById));
            var isLastPublic = BooleanIndexHandler.ConvertBack(doc.Get(LucObject.FieldName.IsLastPublic));
            var isLastDraft = BooleanIndexHandler.ConvertBack(doc.Get(LucObject.FieldName.IsLastDraft));
            var level = isCurrentUser
                ? SecurityHandler.GetPermittedLevel(path, createdById, lastModifiedById)
                : SecurityHandler.GetPermittedLevel(path, createdById, lastModifiedById, user);
            switch (level)
            {
                case PermittedLevel.None:
                    return false;
                case PermittedLevel.HeadOnly:
                    return isLastPublic;
                case PermittedLevel.PublicOnly:
                    return isLastPublic;
                case PermittedLevel.All:
                    return isLastDraft;
                default:
                    throw new NotImplementedException();
            }
        }
    }