public override string GetAccessDeniedRedirectUri() { ManagedDiscussionMapEntry mapentry; if (ManagedDiscussionMap.TryFind(mInstance.DataObject, out mapentry)) { return(string.Format(mapentry.DiscussionUriFormat, mInstance.ObjectId)); } return(string.Empty); }
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); }
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); }