Example #1
0
        public override string GetAccessDeniedRedirectUri()
        {
            ManagedDiscussionMapEntry mapentry;

            if (ManagedDiscussionMap.TryFind(mInstance.DataObject, out mapentry))
            {
                return(string.Format(mapentry.DiscussionUriFormat, mInstance.ObjectId));
            }
            return(string.Empty);
        }
Example #2
0
        public override ACL GetACL(Type type)
        {
            ManagedDiscussionMapEntry mapentry = null;
            ACL acl = null;

            if (mInstance.Personal && ManagedDiscussionMap.TryFind(mInstance.DataObject, out mapentry))
            {
                acl = mapentry.GetACL(Session, mInstance.ObjectId, typeof(Discussion));
            }
            else
            {
                acl = base.GetACL(type);
                acl.Add(new ACLEveryoneAllowRetrieve());
            }

            acl.Add(new ACLAccount(mInstance.Account, DataOperation.All));
            return(acl);
        }
        public override ACL GetACL(Type type)
        {
            ManagedDiscussionMapEntry mapentry = null;
            ACL acl = null;

            if (mInstance.Discussion.Personal && ManagedDiscussionMap.TryFind(mInstance.Discussion.DataObject, out mapentry))
            {
                acl = mapentry.GetACL(Session, mInstance.Discussion.ObjectId, typeof(DiscussionThread));
            }
            else
            {
                acl = base.GetACL(type);
                acl.Add(new ACLEveryoneAllowRetrieve());
                acl.Add(new ACLAuthenticatedAllowCreate());
            }

            return(acl);
        }
Example #4
0
        public override TransitDiscussion GetTransitInstance(ManagedSecurityContext sec)
        {
            TransitDiscussion t_instance = base.GetTransitInstance(sec);

            t_instance.PostCount    = GetDiscussionPostCount(Session, Id);
            t_instance.ThreadCount  = GetDiscussionThreadCount(Session, Id);
            t_instance.CanUpdate    = GetACL().TryCheck(sec, DataOperation.Update);
            t_instance.DataObjectId = (mInstance.DataObject != null ? mInstance.DataObject.Id : 0);

            if (t_instance.Personal && t_instance.ObjectId > 0 && mInstance.DataObject != null)
            {
                ManagedDiscussionMapEntry mapentry;
                if (ManagedDiscussionMap.TryFind(mInstance.DataObject, out mapentry))
                {
                    t_instance.ParentObjectName = mapentry.GetObjectName(Session, t_instance.ObjectId);
                    t_instance.ParentObjectType = mapentry.Type.Name;
                    t_instance.ParentObjectUri  = string.Format(mapentry.DiscussionUriFormat, t_instance.ObjectId);
                }
            }

            return(t_instance);
        }