コード例 #1
0
        public static ModuleInfoModel FromDnnModuleInfo(DotNetNuke.Entities.Modules.ModuleInfo dnnModule)
        {
            ModuleInfoModel mim = new ModuleInfoModel
            {
                ModuleId     = dnnModule.ModuleID,
                Title        = dnnModule.ModuleTitle,
                FriendlyName = dnnModule.DesktopModule.FriendlyName,
                ModuleName   = dnnModule.DesktopModule.ModuleName,
                TabModuleId  = dnnModule.TabModuleID,
                ModuleDefId  = dnnModule.ModuleDefID
            };

            // assign command links
            mim.__ModuleId   = $"get-module {mim.ModuleId}";
            mim.__ModuleName = $"list-modules --name '{mim.ModuleName}' --all";

            // get a list of all pages this module is added to
            var           addedTo   = DotNetNuke.Entities.Modules.ModuleController.Instance.GetTabModulesByModule(mim.ModuleId);
            StringBuilder sbAddedTo = new StringBuilder();

            foreach (DotNetNuke.Entities.Modules.ModuleInfo modInfo in addedTo)
            {
                if (sbAddedTo.Length > 0)
                {
                    sbAddedTo.Append(", ");
                }
                sbAddedTo.Append(modInfo.TabID);
            }
            mim.AddedToPages = sbAddedTo.ToString();
            return(mim);
        }
コード例 #2
0
ファイル: Topics.cs プロジェクト: uba-tech/ActiveForums
        public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
        {
            DotNetNuke.Services.Search.SearchItemInfoCollection SearchItemCollection = new DotNetNuke.Services.Search.SearchItemInfoCollection();
            IDataReader dr = null;

            try
            {
                dr = DataProvider.Instance().Search_DotNetNuke(ModInfo.ModuleID);
                DotNetNuke.Services.Search.SearchItemInfo SearchItem = null;
                while (dr.Read())
                {
                    string   subject     = dr["Subject"].ToString();
                    string   description = string.Empty;
                    string   body        = dr["Body"].ToString();
                    int      authorid    = Convert.ToInt32(dr["AuthorId"]);
                    DateTime datecreated = Convert.ToDateTime(dr["DateCreated"]);
                    DateTime dateupdated = Convert.ToDateTime(dr["DateUpdated"]);
                    int      contentid   = Convert.ToInt32(dr["ContentId"]);
                    int      forumid     = Convert.ToInt32(dr["ForumId"]);
                    int      topicid     = Convert.ToInt32(dr["TopicId"]);
                    int      replyId     = Convert.ToInt32(dr["ReplyId"]);
                    int      jumpid      = topicid;
                    if (replyId > 0)
                    {
                        jumpid = replyId;
                    }
                    body = System.Web.HttpUtility.HtmlDecode(body);
                    body = Utilities.StripHTMLTag(body);
                    if (!(string.IsNullOrEmpty(body)))
                    {
                        if (body.Length > 100)
                        {
                            description = body.Substring(0, 100) + "...";
                        }
                        else
                        {
                            description = body;
                        }
                    }
                    SearchItem = new DotNetNuke.Services.Search.SearchItemInfo(subject, description, authorid, datecreated, ModInfo.ModuleID, contentid.ToString() + "-" + forumid.ToString(), body, ParamKeys.ForumId + "=" + forumid + "&" + ParamKeys.ViewType + "=" + Views.Topic + "&" + ParamKeys.TopicId + "=" + topicid + "&" + ParamKeys.ContentJumpId + "=" + jumpid);
                    SearchItemCollection.Add(SearchItem);
                }
                dr.Close();
                return(SearchItemCollection);
            }
            catch (Exception ex)
            {
                return(null);
            }
            finally
            {
                if (dr != null)
                {
                    if (!dr.IsClosed)
                    {
                        dr.Close();
                    }
                }
            }
        }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region ViewPermission
            // Truyen vao tabid va mid de he thong kiem tra
            // Neu User dang truy cap co quyen thi he thong tra ra du lieu
            // Neu user khong co quyen he thong se thong bao not define
            try
            {
                DotNetNuke.Entities.Portals.PortalSettings portalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
                if (((Request.QueryString["tabid"] == null && Request.Form["tabid"] == null) || (Request.QueryString["mid"] == null && Request.Form["mid"] == null)) || !(Request.IsAuthenticated))
                {
                    WriteDataError("NotAuthenticated");
                    return;
                }
                // get TabId
                int TabId = -1;
                if ((Request.QueryString["tabid"] != null))
                {
                    TabId = Int32.Parse(Request.QueryString["tabid"]);
                }
                else if ((Request.Form["tabid"] != null))
                {
                    TabId = Int32.Parse(Request.Form["tabid"]);
                }

                // get ModuleId
                int ModuleId = -1;
                if ((Request.QueryString["mid"] != null))
                {
                    ModuleId = Int32.Parse(Request.QueryString["mid"]);
                }
                else if ((Request.Form["mid"] != null))
                {
                    ModuleId = Int32.Parse(Request.Form["mid"]);
                }
                objUserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
                DotNetNuke.Entities.Modules.ModuleController mc = new DotNetNuke.Entities.Modules.ModuleController();
                System.Collections.Hashtable settings           = mc.GetModuleSettings(ModuleId);
                objModuleInfo = new DotNetNuke.Entities.Modules.ModuleController().GetModule(ModuleId, TabId);

                if (DotNetNuke.Security.Permissions.ModulePermissionController.CanViewModule(objModuleInfo))
                {
                    try
                    {
                        WriteData();
                    }
                    catch (Exception ex)
                    {
                        WriteDataError(ex.Message);
                    }
                }
            }
            catch (Exception ex)
            {
                WriteDataError(ex.Message);
            }
            #endregion
            base.OnInit(e);
        }
コード例 #4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// GetSearchItems implements the ISearchable Interface
        /// </summary>
        /// <param name="ModInfo">The ModuleInfo for the module to be Indexed</param>
        /// -----------------------------------------------------------------------------
        public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
        {
            var items = new SearchItemInfoCollection();

            // Add the devices to the search index.
            foreach (var item in Factory.ActiveProvider.Devices)
            {
                string guid = String.Format("DeviceID={0}",
                                            item.DeviceId);

                var device = new Device(item);

                items.Add(new SearchItemInfo(
                              device.HardwareCaption,
                              String.Format("{0} running {1} with browser {2}",
                                            device.HardwareCaption,
                                            device.SoftwareCaption,
                                            device.BrowserCaption),
                              ModInfo.CreatedByUserID,
                              Factory.ActiveProvider.PublishedDate,
                              ModInfo.ModuleID,
                              device.DeviceID,
                              device.Content,
                              guid));
            }

            // Add the properties to the search.
            foreach (var property in Factory.ActiveProvider.Properties)
            {
                items.Add(new SearchItemInfo(
                              property.Name,
                              property.Description,
                              ModInfo.CreatedByUserID,
                              Factory.ActiveProvider.PublishedDate,
                              ModInfo.ModuleID,
                              property.Name,
                              property.Description));
                foreach (var value in property.Values)
                {
                    string name = String.Format("{0} - {1}", property.Name, value.Name);
                    items.Add(new SearchItemInfo(
                                  name,
                                  value.Description,
                                  ModInfo.CreatedByUserID,
                                  Factory.ActiveProvider.PublishedDate,
                                  ModInfo.ModuleID,
                                  name,
                                  value.Description));
                }
            }

            return(items);
        }
コード例 #5
0
        public void ProcessRequest(HttpContext context)
        {
            #region ViewPermission
            // Truyen vao tabid va mid de he thong kiem tra
            // Neu User dang truy cap co quyen thi he thong tra ra du lieu
            // Neu user khong co quyen he thong se thong bao not define
            try
            {
                DotNetNuke.Entities.Portals.PortalSettings portalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
                if (!context.Request.IsAuthenticated)
                {
                    WriteDataError(context, "NotAuthenticated");
                    return;
                }
                // get TabId
                int TabId = Utils.tabCheckCommon;

                // get ModuleId
                int ModuleId = Utils.moduleCheckCommon;

                objUserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
                DotNetNuke.Entities.Modules.ModuleController mc = new DotNetNuke.Entities.Modules.ModuleController();
                System.Collections.Hashtable settings           = mc.GetModuleSettings(ModuleId);
                objModuleInfo = new DotNetNuke.Entities.Modules.ModuleController().GetModule(ModuleId, TabId);
                if (DotNetNuke.Security.Permissions.ModulePermissionController.CanViewModule(objModuleInfo))
                {
                    try
                    {
                        WriteData(context);
                        return;
                    }
                    catch (Exception ex)
                    {
                        WriteDataError(context, ex.Message);
                        return;
                    }
                }
                else
                {
                    WriteDataError(context, "NotPermission");
                    return;
                }
            }
            catch (Exception ex)
            {
                WriteDataError(context, ex.Message);
                return;
            }
            #endregion
        }
        /// <summary>
        /// GetSearchItems implements the ISearchable Interface
        /// </summary>
        /// <param name="modInfo">The ModuleInfo for the module to be Indexed</param>
        public Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo modInfo)
        {
            //SearchItemInfoCollection SearchItemCollection = new SearchItemInfoCollection();

            //List<SocialModuleInfo> colSocialModules = GetSocialModules(ModInfo.ModuleID);

            //foreach (SocialModuleInfo objSocialModule in colSocialModules)
            //{
            //    SearchItemInfo SearchItem = new SearchItemInfo(ModInfo.ModuleTitle, objSocialModule.Content, objSocialModule.CreatedByUser, objSocialModule.CreatedDate, ModInfo.ModuleID, objSocialModule.ItemId.ToString(), objSocialModule.Content, "ItemId=" + objSocialModule.ItemId.ToString());
            //    SearchItemCollection.Add(SearchItem);
            //}

            //return SearchItemCollection;

            throw new System.NotImplementedException("The method or operation is not implemented.");
        }
コード例 #7
0
        public override Boolean IsIndexingAllowedForModule(DotNetNuke.Entities.Modules.ModuleInfo objModule)
        {
            DotNetNuke.Entities.Tabs.TabController objTabController = new DotNetNuke.Entities.Tabs.TabController();
            Hashtable tabSettings = objTabController.GetTabSettings(objModule.TabID);

            if (!tabSettings.Contains("AllowIndex") || tabSettings["AllowIndex"].ToString().ToLowerInvariant() == "true")
            {
                // Check if indexing is disabled for the current module
                DotNetNuke.Entities.Modules.ModuleController objModuleController = new DotNetNuke.Entities.Modules.ModuleController();
                Hashtable tabModuleSettings = objModuleController.GetTabModuleSettings(objModule.TabModuleID);
                return(!tabModuleSettings.Contains("AllowIndex") || tabModuleSettings["AllowIndex"].ToString().ToLowerInvariant() == "true");
            }
            else
            {
                return(false);
            }
        }
コード例 #8
0
        public static ModuleInstanceModel FromDnnModuleInfo(DotNetNuke.Entities.Modules.ModuleInfo dnnModule)
        {
            var mim = new ModuleInstanceModel
            {
                ModuleId     = dnnModule.ModuleID,
                Title        = dnnModule.ModuleTitle,
                Pane         = dnnModule.PaneName,
                FriendlyName = dnnModule.DesktopModule.FriendlyName,
                ModuleName   = dnnModule.DesktopModule.ModuleName,
                TabModuleId  = dnnModule.TabModuleID,
                ModuleDefId  = dnnModule.ModuleDefID,
                IsDeleted    = dnnModule.IsDeleted,
                TabId        = dnnModule.TabID,
                __ModuleId   = $"get-module {dnnModule.ModuleID}",
                __ModuleName = $"list-modules '{dnnModule.ModuleID}'"
            };

            return(mim);
        }
コード例 #9
0
        public DotNetNuke.Services.Search.SearchItemInfoCollection GetSearchItems(DotNetNuke.Entities.Modules.ModuleInfo ModInfo)
        {
            SearchItemInfoCollection SearchItemCollection = new SearchItemInfoCollection();
            LocaleCollection         lCollection          = Localization.GetEnabledLocales();

            foreach (Locale localeInfo in lCollection)
            {
                effority.Ealo.StringInfo objText;
                effority.Ealo.StringInfo objSummary;
                objText    = effority.Ealo.Controller.GetStringByQualifierAndStringName(Consts.DesktopHTMLQualifier, ModInfo.ModuleID.ToString(), localeInfo.Code, true);
                objSummary = effority.Ealo.Controller.GetStringByQualifierAndStringName(Consts.DesktopSummaryQualifier, ModInfo.ModuleID.ToString(), localeInfo.Code, true);
                if (!objText.StringTextIsNull)
                {
                    string         strDesktopHtml = HttpUtility.HtmlDecode(objText.StringText);
                    string         strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(strDesktopHtml, false), MAX_DESCRIPTION_LENGTH, "...");
                    SearchItemInfo SearchItem     = new SearchItemInfo(ModInfo.ModuleTitle, localeInfo.Text + " - " + strDescription, -1, DateTime.Now, ModInfo.ModuleID, "", objSummary.StringText + " " + strDesktopHtml, "", Null.NullInteger);
                    SearchItemCollection.Add(SearchItem);
                }
            }
            return(SearchItemCollection);
        }
コード例 #10
0
        private string GetMediaAlignment(int Alignment, DotNetNuke.Entities.Modules.ModuleInfo ModuleConfig)
        {
            switch (Alignment)
            {
            case 0:                     // Use ModuleSettings values
                if (ModuleConfig.Alignment.Trim().Length > 0)
                {
                    switch (ModuleConfig.Alignment.ToLower())
                    {
                    case "left":
                        return(string.Concat(SPACE, ALIGN_LEFT_CLASS));

                    case "center":
                        return(string.Concat(SPACE, ALIGN_CENTER_CLASS));

                    case "right":
                        return(string.Concat(SPACE, ALIGN_RIGHT_CLASS));
                    }
                }

                return(string.Empty);

            case 1:                     // None
                return(string.Empty);

            case 2:                     // Left
                return(string.Concat(SPACE, ALIGN_LEFT_CLASS));

            case 3:                     // Center
                return(string.Concat(SPACE, ALIGN_CENTER_CLASS));

            case 4:                     // Right
                return(string.Concat(SPACE, ALIGN_RIGHT_CLASS));

            default:
                return(string.Empty);
            }
        }
コード例 #11
0
        public string GetWindowsMediaMarkUp(MediaInfo Media, DotNetNuke.Entities.Modules.ModuleInfo ModuleConfig)
        {
            string strWMediaId    = string.Concat(WINDOWS_MEDIA_ID_PREFIX, Media.ModuleID.ToString());
            string strDivId       = string.Concat(DIV_ID_PREFIX, strWMediaId);
            string strDivCssClass = string.Concat(DIV_CLASS, GetMediaAlignment(Media.MediaAlignment, ModuleConfig), " dnnmedia_wmp");

            //
            // BUILD:
            // <div id="" class="">
            // <embed src="" width="" height="" autostart="" loop="" pluginspage="http://download.microsoft.com/download/winmediaplayer/nsplugin/6.4/WIN98/EN-US/wmpplugin.exe" type="application/x-mplayer2"></embed>
            // </div>
            //

            StringBuilder sb = new StringBuilder(10);

            // build open div
            sb.AppendFormat(OPEN_TAG_FORMAT, DIV_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strDivId);
            sb.AppendFormat(CLASS_ATTRIBUTE.Trim(), strDivCssClass);
            sb.Append(CLOSE_BRACKET);
            //

            // build windows media object
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strWMediaId);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "url", Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, "src", Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, "showcontrols", "true");
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOSTART, Media.AutoStart.ToString().ToLower());
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop.ToString().ToLower());
            sb.Append("<!--[if !IE]> <-->");
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(DATA_ATTRIBUTE, Media.WebFriendlyUrl);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("type=\"video/x-ms-wmv\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "src", Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, "controller", "true");
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOSTART, Media.AutoStart.ToString().ToLower());
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop.ToString().ToLower());
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            sb.Append("<!--> <![endif]-->");
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            //

            // build close div
            sb.AppendFormat(CLOSE_TAG_FORMAT, DIV_TAG);
            //

            return(sb.ToString());
        }
コード例 #12
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            try
            {
                if (ForumId > 0 && ForumModuleId == -1)
                {
                    ForumController fc = new ForumController();
                    fi            = fc.Forums_Get(ForumId, UserId, true, true);
                    ForumModuleId = fi.ModuleId;
                }
                if (ForumModuleId > 0)
                {
                    //Dim mc As New DotNetNuke.Entities.Modules.ModuleController
                    //Dim arrMods As ArrayList = mc.GetModule(ForumModuleId)
                    //Dim modInfo As DotNetNuke.Entities.Modules.ModuleInfo = Nothing
                    //For Each mi As DotNetNuke.Entities.Modules.ModuleInfo In arrMods
                    //    If mi.ModuleID = ForumModuleId Then
                    //        modInfo = mi
                    //        Exit For
                    //    End If
                    //Next
                    DotNetNuke.Entities.Modules.ModuleInfo modInfo = new DotNetNuke.Entities.Modules.ModuleInfo();
                    modInfo.TabID    = TabId;
                    modInfo.ModuleID = ForumModuleId;
                    modInfo.PortalID = PortalId;
                    modInfo.DesktopModule.Permissions = this.ModuleConfiguration.DesktopModule.Permissions;

                    //Dim mi As DotNetNuke.Entities.Modules.ModuleInfo = mc.GetModule(ForumModuleId, ForumTabId)
                    ForumBase objModule = (ForumBase)(LoadControl("~/desktopmodules/ActiveForums/classic.ascx"));
                    if (objModule != null)
                    {
                        objModule.ModuleConfiguration = modInfo;
                        objModule.ID            = Path.GetFileNameWithoutExtension("~/desktopmodules/ActiveForums/classic.ascx");
                        objModule.ForumModuleId = ForumModuleId; //CType(Settings["AFForumModuleID"], Integer)
                        objModule.ForumInfo     = fi;
                        objModule.ForumId       = ForumId;
                        objModule.ForumGroupId  = ForumGroupId;
                        objModule.DefaultForumViewTemplateId  = DefaultForumViewTemplateId;
                        objModule.DefaultTopicsViewTemplateId = DefaultTopicsViewTemplateId;
                        objModule.DefaultTopicViewTemplateId  = DefaultTopicViewTemplateId;
                        objModule.TemplatePath     = TemplatePath;
                        objModule.UseTemplatePath  = UseTemplatePath;
                        objModule.ParentForumId    = ParentForumId;
                        objModule.ForumIds         = ForumIds;
                        objModule.InheritModuleCSS = InheritModuleCSS;
                        //objModule.LoadGroupForumID = CType(Settings["AFForumGroupID"], Integer)
                        objModule.DefaultView = DefaultView; //CType(Settings["AFViewType"], String)
                        this.Controls.Add(objModule);
                    }
                }
                else
                {
                    Label lblMessage = new Label();
                    lblMessage.Text     = "Please access the Module Settings page to configure this module.";
                    lblMessage.CssClass = "NormalRed";
                    this.Controls.Add(lblMessage);
                }
            }
            catch (Exception exc)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
コード例 #13
0
        static public string Tokenize(string strContent, DotNetNuke.Entities.Modules.ModuleInfo modInfo, UserInfo user, bool forceDebug, bool bRevertToDnn)
        {
            string cacheKey_Installed     = "avt.MyTokens2.Installed";
            string cacheKey_MethodReplace = "avt.MyTokens2.MethodReplace";

            string bMyTokensInstalled = "no";

            System.Reflection.MethodInfo methodReplace = null;

            bool bDebug = forceDebug;

            if (!bDebug)
            {
                try { bDebug = DotNetNuke.Common.Globals.IsEditMode(); } catch { }
            }

            lock (typeof(DotNetNuke.Services.Tokens.TokenReplace)) {
                // first, determine if MyTokens is installed
                if (HttpRuntime.Cache.Get(cacheKey_Installed) == null)
                {
                    // check again, maybe current thread was locked by another which did all the work
                    if (HttpRuntime.Cache.Get(cacheKey_Installed) == null)
                    {
                        // it's not in cache, let's determine if it's installed
                        try {
                            Type myTokensRepl = DotNetNuke.Framework.Reflection.CreateType("avt.MyTokens.MyTokensReplacer", true);
                            if (myTokensRepl == null)
                            {
                                throw new Exception(); // handled in catch
                            }
                            bMyTokensInstalled = "yes";

                            // we now know MyTokens is installed, get ReplaceTokensAll methods
                            methodReplace = myTokensRepl.GetMethod(
                                "ReplaceTokensAll",
                                System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static,
                                null,
                                System.Reflection.CallingConventions.Any,
                                new Type[] {
                                typeof(string),
                                typeof(DotNetNuke.Entities.Users.UserInfo),
                                typeof(bool),
                                typeof(DotNetNuke.Entities.Modules.ModuleInfo)
                            },
                                null
                                );

                            if (methodReplace == null)
                            {
                                // this shouldn't really happen, we know MyTokens is installed
                                throw new Exception();
                            }
                        } catch {
                            bMyTokensInstalled = "no";
                        }

                        // cache values so next time the funciton is called the reflection logic is skipped
                        HttpRuntime.Cache.Insert(cacheKey_Installed, bMyTokensInstalled);
                        if (bMyTokensInstalled == "yes")
                        {
                            HttpRuntime.Cache.Insert(cacheKey_MethodReplace, methodReplace);
                        }
                    }
                }
            }

            bMyTokensInstalled = HttpRuntime.Cache.Get(cacheKey_Installed).ToString();
            if (bMyTokensInstalled == "yes")
            {
                methodReplace = (System.Reflection.MethodInfo)HttpRuntime.Cache.Get(cacheKey_MethodReplace);
                if (methodReplace == null)
                {
                    HttpRuntime.Cache.Remove(cacheKey_Installed);
                    return(Tokenize(strContent, modInfo, user, forceDebug, bRevertToDnn));
                }
            }
            else
            {
                // if it's not installed return string or tokenize with DNN replacer
                if (!bRevertToDnn)
                {
                    return(strContent);
                }
                else
                {
                    DotNetNuke.Services.Tokens.TokenReplace dnnTknRepl = new DotNetNuke.Services.Tokens.TokenReplace();
                    dnnTknRepl.AccessingUser = user ?? DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
                    dnnTknRepl.DebugMessages = bDebug;
                    if (modInfo != null)
                    {
                        dnnTknRepl.ModuleInfo = modInfo;
                    }

                    // MyTokens is not installed, execution ends here
                    return(dnnTknRepl.ReplaceEnvironmentTokens(strContent));
                }
            }

            // we have MyTokens installed, proceed to token replacement
            return((string)methodReplace.Invoke(
                       null,
                       new object[] {
                strContent,
                user ?? DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(),
                bDebug,
                modInfo
            }
                       ));
        }
コード例 #14
0
        public string GetQuicktimeMarkUp(MediaInfo Media, DotNetNuke.Entities.Modules.ModuleInfo ModuleConfig)
        {
            string strQMediaId    = string.Concat(QUICKTIME_ID_PREFIX, Media.ModuleID.ToString());
            string strDivId       = string.Concat(DIV_ID_PREFIX, strQMediaId);
            string strDivCssClass = string.Concat(DIV_CLASS, GetMediaAlignment(Media.MediaAlignment, ModuleConfig), " dnnmedia_wmp");

            //
            // BUILD:
            // <div id="" class="">
            // <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="" height="">
            // <param name="src" value="" />
            // <param name="autoplay" value="true" />
            // <param name="controller" value="true" />
            // <param name="loop" value="false" />
            // <param name="type" value="video/quicktime" />
            // <param name="target" value="myself" />
            // <embed width="" height="" pluginspage="http://www.apple.com/quicktime/download/" src="" type="video/quicktime" autoplay="true" controller="true" loop="false" target="myself"></embed>
            // </object>
            // </div>
            //

            StringBuilder sb = new StringBuilder(10);

            // build open div
            sb.AppendFormat(OPEN_TAG_FORMAT, DIV_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strDivId);
            sb.AppendFormat(CLASS_ATTRIBUTE.Trim(), strDivCssClass);
            sb.Append(CLOSE_BRACKET);
            //

            // build quicktime object
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strQMediaId);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            // ISSUE 18955 - http://dnnmedia.codeplex.com/workitem/18955
            // Changed the clsid to be the correct one
            sb.Append("classid=\"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B\" ");
            sb.Append("codebase=\"http://www.apple.com/qtactivex/qtplugin.cab\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "src", Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, "controller", "true");
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOPLAY, Media.AutoStart);
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop);
            sb.Append("<!--[if !IE]> <-->");
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(DATA_ATTRIBUTE, Media.WebFriendlyUrl);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("type=\"video/quicktime\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "controller", "true");
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOPLAY, Media.AutoStart);
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop);
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            sb.Append("<!--> <![endif]-->");
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            //

            // build close div
            sb.AppendFormat(CLOSE_TAG_FORMAT, DIV_TAG);
            //

            return(sb.ToString());
        }
コード例 #15
0
        public string GetRealPlayerMarkUp(MediaInfo Media, DotNetNuke.Entities.Modules.ModuleInfo ModuleConfig)
        {
            string strRMediaId    = string.Concat(REAL_PLAYER_ID_PREFIX, Media.ModuleID.ToString());
            string strDivId       = string.Concat(DIV_ID_PREFIX, strRMediaId);
            string strDivCssClass = string.Concat(DIV_CLASS, GetMediaAlignment(Media.MediaAlignment, ModuleConfig), " dnnmedia_wmp");

            //
            // BUILD:
            // <div id="" class="">
            // <object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="" height="">
            // <param name="src" value="" />
            // <param name="controls" value="ImageWindow" />
            // <param name="console" value="one" />
            // <param name="autostart" value="true" />
            // <param name="wmode" value="transparent" />
            // <embed src="" width="" height="" nojava="true" controls="ImageWindow" console="one" autostart="" wmode="transparent"></embed>
            // </object>
            // </div>
            //

            StringBuilder sb = new StringBuilder(10);

            // build open div
            sb.AppendFormat(OPEN_TAG_FORMAT, DIV_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strDivId);
            sb.AppendFormat(CLASS_ATTRIBUTE.Trim(), strDivCssClass);
            sb.Append(CLOSE_BRACKET);
            //

            // build real media player object
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strRMediaId);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("classid=\"clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, SRC, Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop);
            sb.AppendFormat(PARAM_TAG_FORMAT, "controls", "ImageWindow");
            sb.AppendFormat(PARAM_TAG_FORMAT, "maintainaspect", "true");
            //sb.AppendFormat(PARAM_TAG_FORMAT, "console", "_unique")
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOSTART, Media.AutoStart.ToString().ToLower());
            sb.Append("<!--[if !IE]> <-->");
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(DATA_ATTRIBUTE, Media.WebFriendlyUrl);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("type=\"audio/x-pn-realaudio-plugin\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, SRC, Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, MEDIA_LOOP, Media.MediaLoop);
            sb.AppendFormat(PARAM_TAG_FORMAT, AUTOSTART, Media.AutoStart.ToString().ToLower());
            sb.AppendFormat(PARAM_TAG_FORMAT, "nojava", "true");
            sb.AppendFormat(PARAM_TAG_FORMAT, "controls", "ImageWindow");
            sb.AppendFormat(PARAM_TAG_FORMAT, "maintainaspect", "true");
            //sb.AppendFormat(PARAM_TAG_FORMAT, "console", "_unique")
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            sb.Append("<!--> <![endif]-->");
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            //

            // build close div
            sb.AppendFormat(CLOSE_TAG_FORMAT, DIV_TAG);
            //

            return(sb.ToString());
        }
コード例 #16
0
        public virtual void ProcessRequest(System.Web.HttpContext context)
        {
            try
            {
                if (HttpContext.Current.Items["PortalSettings"] != null)
                {
                    _ps  = (DotNetNuke.Entities.Portals.PortalSettings)(HttpContext.Current.Items["PortalSettings"]);
                    _pid = _ps.PortalId;
                }
                else
                {
                    string DomainName = null;
                    DotNetNuke.Entities.Portals.PortalAliasInfo objPortalAliasInfo = null;
                    string sUrl = HttpContext.Current.Request.RawUrl.Replace("http://", string.Empty).Replace("https://", string.Empty);
                    objPortalAliasInfo = DotNetNuke.Entities.Portals.PortalAliasController.Instance.GetPortalAlias(HttpContext.Current.Request.Url.Host);
                    _pid = objPortalAliasInfo.PortalID;
                    _ps  = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
                }

                //Dim sc As New Social.SocialSettings
                //_mainSettings = sc.LoadSettings[_ps.PortalId]
                _mainSettings = DataCache.MainSettings(ModuleId);
                //  If context.Request.IsAuthenticated Then
                _isValid = true;
                if (AdminRequired & !context.Request.IsAuthenticated)
                {
                    _isValid = false;
                    return;
                }
                if (AdminRequired && context.Request.IsAuthenticated)
                {
                    //_isValid = DotNetNuke.Security.PortalSecurity.IsInRole(_ps.AdministratorRoleName)
                    DotNetNuke.Entities.Modules.ModuleController objMC = new DotNetNuke.Entities.Modules.ModuleController();
                    DotNetNuke.Entities.Modules.ModuleInfo       objM  = objMC.GetModule(ModuleId, TabId);
                    string roleIds = Permissions.GetRoleIds(objM.ModulePermissions.ToString("EDIT").Split(';'), PortalId);
                    _isValid = Modules.ActiveForums.Permissions.HasAccess(roleIds, ForumUser.UserRoles);
                }
                else if (AdminRequired & !context.Request.IsAuthenticated)
                {
                    _isValid = false;
                    return;
                }
                string p = HttpContext.Current.Request.Params["p"];
                if (!(string.IsNullOrEmpty(p)))
                {
                    _params = Utilities.JSON.ConvertFromJSONAssoicativeArrayToHashTable(p);
                }

                if (context.Request.Files.Count == 0)
                {
                    string jsonPost     = string.Empty;
                    string prop         = string.Empty;
                    bool   propComplete = true;
                    string val          = string.Empty;
                    string tmp          = string.Empty;
                    bool   bObj         = false;
                    //Arrays
                    List <string> slist = null;
                    //Dim pairs As NameValueCollection = Nothing
                    Hashtable pairs    = null;
                    Hashtable subPairs = null;

                    Hashtable ht         = new Hashtable();
                    int       idx        = 0;
                    string    parentProp = string.Empty;
                    string    skip       = "{}[]:," + ((char)(34)).ToString();
                    using (System.IO.StreamReader sr = new System.IO.StreamReader(context.Request.InputStream, System.Text.Encoding.UTF8))
                    {
                        while (!(sr.EndOfStream))
                        {
                            char c = (char)(sr.Read());
                            if (idx > 0 && c == '[')
                            {
                                c    = (char)(sr.Read());
                                bObj = true;
                            }
                            if (idx > 0 && c == '{')
                            {
                                if (pairs == null)
                                {
                                    parentProp = prop;
                                    prop       = string.Empty;
                                    tmp        = string.Empty;
                                    //pairs = New NameValueCollection
                                    pairs = new Hashtable();
                                }
                                else if (subPairs == null)
                                {
                                    string subString = c.ToString();
                                    while (c != '}')
                                    {
                                        c          = (char)(sr.Read());
                                        subString += c;
                                        if (c == '}')
                                        {
                                            break;
                                        }
                                    }
                                    subPairs = Utilities.JSON.ConvertFromJSONAssoicativeArrayToHashTable(subString);
                                    pairs.Add(prop, subPairs);
                                    prop     = string.Empty;
                                    tmp      = string.Empty;
                                    subPairs = null;
                                    c        = (char)(sr.Read());
                                }
                            }

                            if (idx > 0 && bObj == true && !(c == '{'))
                            {
                                string subItem = string.Empty;
                                while (c != ']')
                                {
                                    if (slist == null)
                                    {
                                        slist = new List <string>();
                                    }
                                    if (skip.IndexOf(c) == -1)
                                    {
                                        subItem += c;
                                    }

                                    c = (char)(sr.Read());
                                    if (c == ',' || c == ']')
                                    {
                                        slist.Add(subItem);
                                        subItem = string.Empty;
                                    }
                                    if (c == ']')
                                    {
                                        c    = (char)(sr.Read());
                                        bObj = false;
                                        break;
                                    }
                                }
                            }
                            if (c == ':')
                            {
                                prop = tmp;
                                tmp  = string.Empty;
                            }
                            if (skip.IndexOf(c) == -1)
                            {
                                tmp += c;
                            }
                            if (c == ',' || c == '}')
                            {
                                if (!(string.IsNullOrEmpty(tmp)))
                                {
                                    tmp = HttpUtility.UrlDecode(tmp);
                                }
                                if (slist != null)
                                {
                                    ht.Add(prop, slist);
                                    slist = null;
                                }
                                else if (pairs != null && c == ',' && !(string.IsNullOrEmpty(prop)))
                                {
                                    pairs.Add(prop, tmp);
                                }
                                else if (pairs != null && c == '}')
                                {
                                    if (!(string.IsNullOrEmpty(tmp)))
                                    {
                                        pairs.Add(prop, tmp);
                                    }
                                    ht.Add(parentProp, pairs);
                                    parentProp = string.Empty;
                                    pairs      = null;
                                }
                                else if (!(string.IsNullOrEmpty(prop)))
                                {
                                    ht.Add(prop, tmp);
                                }

                                prop = string.Empty;
                                tmp  = string.Empty;
                            }

                            idx += 1;
                        }
                        if (pairs != null & !(string.IsNullOrEmpty(parentProp)))
                        {
                            ht.Add(parentProp, pairs);
                        }
                        else if (!(string.IsNullOrEmpty(prop)) && !(string.IsNullOrEmpty(tmp)))
                        {
                            ht.Add(prop, HttpUtility.UrlDecode(tmp));
                        }
                        else if (!(string.IsNullOrEmpty(prop)) && slist != null)
                        {
                            ht.Add(prop, slist);
                        }

                        //jsonPost = sr.ReadToEnd()
                        sr.Close();
                    }
                    _params = ht;
                    //End If
                }
                else
                {
                    Hashtable ht = new Hashtable();
                    foreach (string s in context.Request.Params.AllKeys)
                    {
                        if (!(ht.ContainsKey(s)))
                        {
                            ht.Add(s, context.Request.Params[s]);
                        }
                    }
                    _params = ht;
                }

                if (HttpContext.Current.Request.IsAuthenticated)
                {
                    UserId = UserController.GetUserIdByUserName(PortalId, HttpContext.Current.User.Identity.Name);
                }
                else
                {
                    UserId = -1;
                }
            }
            catch (Exception ex)
            {
                _isValid = false;
                Exceptions.LogException(ex);
            }
        }
コード例 #17
0
ファイル: ForumLoader.cs プロジェクト: allanedk/ActiveForums
        protected override void OnLoad(EventArgs e)
		{
			base.OnLoad(e);

            try
            {
                if (ForumId > 0 && ForumModuleId == -1)
                {
                    ForumController fc = new ForumController();
                    fi = fc.Forums_Get(ForumId, UserId, true, true);
                    ForumModuleId = fi.ModuleId;
                }
                if (ForumModuleId > 0)
                {
                    //Dim mc As New DotNetNuke.Entities.Modules.ModuleController
                    //Dim arrMods As ArrayList = mc.GetModule(ForumModuleId)
                    //Dim modInfo As DotNetNuke.Entities.Modules.ModuleInfo = Nothing
                    //For Each mi As DotNetNuke.Entities.Modules.ModuleInfo In arrMods
                    //    If mi.ModuleID = ForumModuleId Then
                    //        modInfo = mi
                    //        Exit For
                    //    End If
                    //Next
                    DotNetNuke.Entities.Modules.ModuleInfo modInfo = new DotNetNuke.Entities.Modules.ModuleInfo();
                    modInfo.TabID = TabId;
                    modInfo.ModuleID = ForumModuleId;
                    modInfo.PortalID = PortalId;
                    modInfo.DesktopModule.Permissions = this.ModuleConfiguration.DesktopModule.Permissions;

                    //Dim mi As DotNetNuke.Entities.Modules.ModuleInfo = mc.GetModule(ForumModuleId, ForumTabId)
                    ForumBase objModule = (ForumBase)(LoadControl("~/desktopmodules/ActiveForums/classic.ascx"));
                    if (objModule != null)
                    {
                        objModule.ModuleConfiguration = modInfo;
                        objModule.ID = Path.GetFileNameWithoutExtension("~/desktopmodules/ActiveForums/classic.ascx");
                        objModule.ForumModuleId = ForumModuleId; //CType(Settings["AFForumModuleID"], Integer)
                        objModule.ForumInfo = fi;
                        objModule.ForumId = ForumId;
                        objModule.ForumGroupId = ForumGroupId;
                        objModule.DefaultForumViewTemplateId = DefaultForumViewTemplateId;
                        objModule.DefaultTopicsViewTemplateId = DefaultTopicsViewTemplateId;
                        objModule.DefaultTopicViewTemplateId = DefaultTopicViewTemplateId;
                        objModule.TemplatePath = TemplatePath;
                        objModule.UseTemplatePath = UseTemplatePath;
                        objModule.ParentForumId = ParentForumId;
                        objModule.ForumIds = ForumIds;
                        objModule.InheritModuleCSS = InheritModuleCSS;
                        //objModule.LoadGroupForumID = CType(Settings["AFForumGroupID"], Integer)
                        objModule.DefaultView = DefaultView; //CType(Settings["AFViewType"], String)
                        this.Controls.Add(objModule);
                    }
                }
                else
                {
                    Label lblMessage = new Label();
                    lblMessage.Text = "Please access the Module Settings page to configure this module.";
                    lblMessage.CssClass = "NormalRed";
                    this.Controls.Add(lblMessage);
                }
            }
            catch (Exception exc)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
コード例 #18
0
        internal static DotNetNuke.Security.Permissions.ModulePermissionInfo AddModulePermission(DotNetNuke.Entities.Modules.ModuleInfo objModule, DotNetNuke.Security.Permissions.PermissionInfo permission, int roleId, int userId, bool allowAccess)
        {
            var objModulePermission = new DotNetNuke.Security.Permissions.ModulePermissionInfo();

            objModulePermission.ModuleID      = objModule.ModuleID;
            objModulePermission.PermissionID  = permission.PermissionID;
            objModulePermission.RoleID        = roleId;
            objModulePermission.UserID        = userId;
            objModulePermission.PermissionKey = permission.PermissionKey;
            objModulePermission.AllowAccess   = allowAccess;

            // add the permission to the collection
            if (!objModule.ModulePermissions.Contains(objModulePermission))
            {
                objModule.ModulePermissions.Add(objModulePermission);
            }

            return(objModulePermission);
        }
コード例 #19
0
        public HttpResponseMessage SaveModule(DTO.ModuleDetails module)
        {
            var apiResponse = new DTO.ApiResponse <int>();

            try
            {
                int iPosition = -1;
                switch (module.Position.ToUpper())
                {
                case "TOP":
                    iPosition = 0;
                    break;

                case "ABOVE":
                    if (string.IsNullOrEmpty(module.ModuleInstance) == false)
                    {
                        iPosition = int.Parse(module.ModuleInstance) - 1;
                    }
                    break;

                case "BELOW":
                    if (string.IsNullOrEmpty(module.ModuleInstance) == false)
                    {
                        iPosition = int.Parse(module.ModuleInstance) + 1;
                    }
                    break;

                case "BOTTOM":
                    iPosition = -1;
                    break;
                }

                if (module.CreateAs == "copy")
                {
                    if (module.Container == "-1")
                    {
                        module.Container = string.Empty;
                    }

                    Common.AddModuleCopy(module.ModuleId, module.PageId, iPosition, module.Location, module.Container);
                    apiResponse.Success = true;
                }
                else if (module.CreateAs == "link")
                {
                    if (module.Container == "-1")
                    {
                        module.Container = string.Empty;
                    }

                    Common.AddExistingModule(module.ModuleId, module.PageId, module.Location, iPosition, "", module.Container);
                    apiResponse.Success = true;
                }
                else
                {
                    List <int> lstNewModules = new List <int>();

                    var objTabPermissions       = PortalSettings.ActiveTab.TabPermissions;
                    var objPermissionController = new DotNetNuke.Security.Permissions.PermissionController();
                    var objModules = new DotNetNuke.Entities.Modules.ModuleController();

                    var objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController();
                    int j           = 0;

                    try
                    {
                        DotNetNuke.Entities.Modules.DesktopModuleInfo desktopModule = null;
                        if (!DotNetNuke.Entities.Modules.DesktopModuleController.GetDesktopModules(PortalSettings.PortalId).TryGetValue(module.Module, out desktopModule))
                        {
                            apiResponse.Message = "desktopModuleId";
                            return(Request.CreateResponse(HttpStatusCode.OK, apiResponse));
                        }
                    }
                    catch (Exception ex)
                    {
                        //LogException(ex);
                    }

                    int UserId = UserInfo.UserID;

                    foreach (var objModuleDefinition in DotNetNuke.Entities.Modules.Definitions.ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(module.Module).Values)
                    {
                        var objModule = new DotNetNuke.Entities.Modules.ModuleInfo();
                        objModule.Initialize(PortalSettings.PortalId);

                        objModule.PortalID = PortalSettings.PortalId;
                        objModule.TabID    = PortalSettings.ActiveTab.TabID;

                        objModule.ModuleOrder = iPosition;
                        if (string.IsNullOrEmpty(module.Title) == true)
                        {
                            objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                        }
                        else
                        {
                            objModule.ModuleTitle = module.Title;
                        }

                        if (!string.IsNullOrEmpty(module.Container) && module.Container != "-1")
                        {
                            objModule.ContainerSrc = module.Container;
                        }

                        objModule.PaneName    = module.Location;
                        objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                        if (objModuleDefinition.DefaultCacheTime > 0)
                        {
                            objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                            if (PortalSettings.DefaultModuleId > Null.NullInteger && PortalSettings.DefaultTabId > Null.NullInteger)
                            {
                                var defaultModule = objModules.GetModule(PortalSettings.DefaultModuleId, PortalSettings.DefaultTabId, true);
                                if ((defaultModule != null))
                                {
                                    objModule.CacheTime = defaultModule.CacheTime;
                                }
                            }
                        }

                        switch (module.Visibility)
                        {
                        case 0:
                            objModule.InheritViewPermissions = true;
                            break;

                        case 1:
                            objModule.InheritViewPermissions = false;
                            break;

                        case 2:
                            objModule.InheritViewPermissions = false;
                            break;

                        case 3:
                            objModule.InheritViewPermissions = false;
                            break;

                        case 4:
                            objModule.InheritViewPermissions = false;
                            break;
                        }

                        // get the default module view permissions
                        var arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                        // get the permissions from the page
                        foreach (DotNetNuke.Security.Permissions.TabPermissionInfo objTabPermission in objTabPermissions)
                        {
                            if (objTabPermission.PermissionKey == "VIEW" && module.Visibility == 0)
                            {
                                //Don't need to explicitly add View permisisons if "Same As Page"
                                continue;
                            }

                            // get the system module permissions for the permissionkey
                            var arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                            // loop through the system module permissions
                            for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                            {
                                // create the module permission
                                DotNetNuke.Security.Permissions.PermissionInfo objSystemModulePermission = null;
                                objSystemModulePermission = (DotNetNuke.Security.Permissions.PermissionInfo)arrSystemModulePermissions[j];
                                if (objSystemModulePermission.PermissionKey == "VIEW" && module.Visibility == 1 && objTabPermission.PermissionKey != "EDIT")
                                {
                                    //Only Page Editors get View permissions if "Page Editors Only"
                                    continue;
                                }

                                var objModulePermission = Common.AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);

                                // ensure that every EDIT permission which allows access also provides VIEW permission
                                if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess)
                                {
                                    var objModuleViewperm = Common.AddModulePermission(objModule, (DotNetNuke.Security.Permissions.PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true);
                                }
                            }

                            //Get the custom Module Permissions,  Assume that roles with Edit Tab Permissions
                            //are automatically assigned to the Custom Module Permissions
                            if (objTabPermission.PermissionKey == "EDIT")
                            {
                                var arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);

                                // loop through the custom module permissions
                                for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++)
                                {
                                    // create the module permission
                                    DotNetNuke.Security.Permissions.PermissionInfo objCustomModulePermission = null;
                                    objCustomModulePermission = (DotNetNuke.Security.Permissions.PermissionInfo)arrCustomModulePermissions[j];

                                    Common.AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                                }
                            }
                        }

                        objModule.AllTabs = false;
                        //objModule.Alignment = align;

                        apiResponse.CustomObject = objModules.AddModule(objModule);
                        apiResponse.Success      = true;
                    }
                }
            }
            catch (Exception err)
            {
                apiResponse.Success = false;
                apiResponse.Message = err.Message;

                Exceptions.LogException(err);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, apiResponse));
        }
コード例 #20
0
        /// <summary>
        /// Gets the notification emails.
        /// </summary>
        /// <param name="topic">The topic.</param>
        /// <returns>A List of Users</returns>
        public List <string> GetNotificationEmails(Topic topic)
        {
            Setting wikiSettings = new SettingBO(this.mUnitOfWork).GetByModuleID(topic.ModuleId);

            List <string> lstUsers = new List <string>();

            if (wikiSettings != null)
            {
                // Gather the email address from the roles assigned to this module...
                if (!string.IsNullOrWhiteSpace(wikiSettings.CommentNotifyRoles))
                {
                    DotNetNuke.Security.Roles.RoleController     objRoles   = new DotNetNuke.Security.Roles.RoleController();
                    DotNetNuke.Entities.Modules.ModuleController objModules = new DotNetNuke.Entities.Modules.ModuleController();
                    DotNetNuke.Entities.Modules.ModuleInfo       objModule  = objModules.GetModule(topic.ModuleId);

                    if (objModule != null)
                    {
                        bool fetchUsingDNNRoles    = false;
                        bool fetchUsingCustomRoles = false;
                        bool fetchViewUsers        = false;
                        bool fetchEditUsers        = false;

                        fetchUsingDNNRoles    = !string.IsNullOrWhiteSpace(wikiSettings.ContentEditorRoles) && wikiSettings.ContentEditorRoles.StartsWith("UseDNNSettings;");
                        fetchUsingCustomRoles = !string.IsNullOrWhiteSpace(wikiSettings.CommentNotifyRoles) && !wikiSettings.CommentNotifyRoles.StartsWith("UseDNNSettings;");

                        if (!fetchUsingCustomRoles)
                        {
                            fetchEditUsers = wikiSettings.CommentNotifyRoles.Contains(";Edit");
                            fetchViewUsers = wikiSettings.CommentNotifyRoles.Contains(";View");
                        }

                        // Compile our view users, only if enabled
                        if (fetchViewUsers)
                        {
                            foreach (string role in objModule.AuthorizedViewRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                            {
                                if (role.ToLower().Equals("all users"))
                                {
                                    // Trap against fake roles
                                    var arrUsers =
                                        DotNetNuke.Entities.Users.UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings().PortalId).OfType <UserInfo>();
                                    foreach (DotNetNuke.Entities.Users.UserInfo objUser in arrUsers)
                                    {
                                        if (!lstUsers.Contains(objUser.Email))
                                        {
                                            lstUsers.Add(objUser.Email);
                                        }
                                    }
                                }
                                else
                                {
                                    // This role should be legit
                                    foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in
                                             objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                    {
                                        if (!lstUsers.Contains(objUserRole.Email))
                                        {
                                            lstUsers.Add(objUserRole.Email);
                                        }
                                    }
                                }
                            }
                        }

                        // Compile our edit users, only if enabled
                        if (fetchEditUsers)
                        {
                            if (fetchUsingDNNRoles)
                            {
                                // Fetch using dnn edit roles
                                foreach (string role in objModule.AuthorizedEditRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                                {
                                    if (role.ToLower().Equals("all users"))
                                    {
                                        // Trap against fake roles
                                    }
                                    else
                                    {
                                        // This role should be legit
                                        foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                        {
                                            if (!lstUsers.Contains(objUserRole.Email))
                                            {
                                                lstUsers.Add(objUserRole.Email);
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                // Fetch using custom wiki edit roles
                                foreach (string role in wikiSettings.ContentEditorRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
                                {
                                    foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
                                    {
                                        if (!lstUsers.Contains(objUserRole.Email))
                                        {
                                            lstUsers.Add(objUserRole.Email);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                // Gather any users emails address from comments in this topic...
                if (wikiSettings.CommentNotifyUsers == true)
                {
                    IEnumerable <CommentEmails> lstEmails = new CommentBO(this.mUnitOfWork).GetCommentNotifyUsers(topic.TopicID);

                    foreach (CommentEmails objCommentEmail in lstEmails)
                    {
                        if (!lstUsers.Contains(objCommentEmail.Email))
                        {
                            lstUsers.Add(objCommentEmail.Email);
                        }
                    }
                }
            }

            return(lstUsers);
        }
コード例 #21
0
        public string GetFlashMarkUp(MediaInfo Media, DotNetNuke.Entities.Modules.ModuleInfo ModuleConfig)
        {
            string strFlashId     = string.Concat(FLASH_ID_PREFIX, Media.ModuleID.ToString());
            string strDivId       = string.Concat(DIV_ID_PREFIX, strFlashId);
            string strDivCssClass = string.Concat(DIV_CLASS, GetMediaAlignment(Media.MediaAlignment, ModuleConfig));

            //Media.Src = String.Concat(CurrentDomain, Media.Src)

            //
            // BUILD:
            // <div id="" class="">
            // <embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="" width="" height="" type="application/x-shockwave-flash" bgcolor="" salign="LT" quality="high" menu="false" loop=""></embed>
            // </div>
            //

            StringBuilder sb = new StringBuilder(10);

            // build open div
            sb.AppendFormat(OPEN_TAG_FORMAT, DIV_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strDivId);
            sb.AppendFormat(CLASS_ATTRIBUTE.Trim(), strDivCssClass);
            sb.Append(CLOSE_BRACKET);
            //

            // build flash object
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(ID_ATTRIBUTE, strFlashId);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" ");
            sb.AppendFormat("codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "movie", Media.WebFriendlyUrl);
            sb.AppendFormat(PARAM_TAG_FORMAT, "quality", "high");
            sb.AppendFormat(PARAM_TAG_FORMAT, "bgcolor", "#ffffff");
            sb.AppendFormat(PARAM_TAG_FORMAT, "wmode", "transparent");
            sb.Append("<!--[if !IE]> <-->");
            sb.AppendFormat(OPEN_TAG_FORMAT, OBJECT_TAG);
            sb.AppendFormat(DATA_ATTRIBUTE, Media.WebFriendlyUrl);
            if (Media.Width > Null.NullInteger)
            {
                sb.AppendFormat(WIDTH_ATTRIBUTE, Media.Width);
            }
            if (Media.Height > Null.NullInteger)
            {
                sb.AppendFormat(HEIGHT_ATTRIBUTE, Media.Height);
            }
            sb.Append("type=\"application/x-shockwave-flash\"");
            sb.Append(CLOSE_BRACKET);
            sb.AppendFormat(PARAM_TAG_FORMAT, "quality", "high");
            sb.AppendFormat(PARAM_TAG_FORMAT, "bgcolor", "#ffffff");
            sb.AppendFormat(PARAM_TAG_FORMAT, "wmode", "transparent");
            sb.AppendFormat(PARAM_TAG_FORMAT, "pluginurl", "http://www.macromedia.com/go/getflashplayer");
            sb.AppendFormat(PARAM_TAG_FORMAT, "wmode", "transparent");
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            sb.Append("<!--> <![endif]-->");
            sb.AppendFormat(CLOSE_TAG_FORMAT, OBJECT_TAG);
            //

            // build close div
            sb.AppendFormat(CLOSE_TAG_FORMAT, DIV_TAG);
            //

            return(sb.ToString());
        }