コード例 #1
0
        /// <summary>
        /// Adds the JSON payload for a moderated external link to ExLinkModHashInternal
        /// </summary>
        /// <param name="hash"></param>
        /// <param name="siteid"></param>
        public void AddToExLinkModCallbackInternal(string hash, int siteId, ExLinkModCallbackItem exLinkModCallbackItem)
        {
            string payload = JsonConvert.SerializeObject(exLinkModCallbackItem);

            using (IDnaDataReader reader = DnaDataReaderCreator.CreateDnaDataReader("createexlinkmodcallbackinternal"))
            {
                reader.AddParameter("hash", hash);
                reader.AddParameter("siteid", siteId);
                reader.AddParameter("payload", payload);
                reader.Execute();
            }
        }
コード例 #2
0
ファイル: ModerationService.cs プロジェクト: rocketeerbkw/DNA
        public void CreateCallbackItemInternal(string sitename, ExLinkModCallbackItem exLinkModCallbackItem)
        {
            try
            {
                ISite site = GetSite(sitename);
                CallingUser viewer = GetCallingUser(site);
                if (viewer.IsUserA(UserTypes.Editor))
                {
                    ExternalLinkModeration exLinkMod = new ExternalLinkModeration(base.dnaDiagnostic, base.readerCreator, base.cacheManager, base.siteList);
                    string hash = QueryStringHelper.GetQueryParameterAsString("encryptionKey", "");

                    if (exLinkMod.IsValidHash(hash, site.SiteID))
                    {
                        exLinkMod.AddToExLinkModCallbackInternal(hash, site.SiteID, exLinkModCallbackItem);
                    }
                    else
                    {
                        throw new DnaWebProtocolException(System.Net.HttpStatusCode.Unauthorized, "Invalid encryption key", null);
                    }
                }
                else
                {
                    throw new DnaWebProtocolException(System.Net.HttpStatusCode.Unauthorized, "User must be an editor", null);
                }
            }
            catch (DnaException ex)
            {
                throw new DnaWebProtocolException(System.Net.HttpStatusCode.InternalServerError, ex.Message, ex);
            }
        }