Skip to content

Commit d0232ff

Browse files
Merge pull request #26 from valadas/dnn8-obsolete-apis
Replaced obsolete API usages as of DNN 8.0.4
2 parents 592d67b + 3a47604 commit d0232ff

8 files changed

Lines changed: 110 additions & 126 deletions

File tree

BusinessObjects/Models/Topic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ public string UpdatedByUsername
283283
get
284284
{
285285
UserInfo user = UserController.GetUserById(
286-
PortalController.GetCurrentPortalSettings().PortalId,
286+
PortalController.Instance.GetCurrentPortalSettings().PortalId,
287287
this.UpdatedByUserID);
288288
if (user != null)
289289
{

BusinessObjects/Models/TopicHistory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public string UpdatedByUsername
209209
get
210210
{
211211
UserInfo user = UserController.GetUserById(
212-
PortalController.GetCurrentPortalSettings().PortalId,
212+
PortalController.Instance.GetCurrentPortalSettings().PortalId,
213213
this.UpdatedByUserID);
214214
if (user != null)
215215
{

BusinessObjects/TopicBO.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#endregion Copyright
2525

2626
using DotNetNuke.Entities.Users;
27+
using DotNetNuke.Security.Roles;
2728
using DotNetNuke.Wiki.BusinessObjects.Models;
2829
using DotNetNuke.Wiki.Utilities;
2930
using System.Collections.Generic;
@@ -179,14 +180,16 @@ public List<string> GetNotificationEmails(Topic topic)
179180
// Compile our view users, only if enabled
180181
if (fetchViewUsers)
181182
{
182-
foreach (string role in objModule.AuthorizedViewRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
183+
var viewRoleNames = objModule.ModulePermissions
184+
.Where(p => p.PermissionKey == "VIEW" && p.AllowAccess)
185+
.Select(p => p.RoleName);
186+
foreach (var role in viewRoleNames)
183187
{
184188
if (role.ToLower().Equals("all users"))
185189
{
186190
// Trap against fake roles
187-
var arrUsers =
188-
DotNetNuke.Entities.Users.UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings().PortalId).OfType<UserInfo>();
189-
foreach (DotNetNuke.Entities.Users.UserInfo objUser in arrUsers)
191+
var arrUsers = UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.Instance.GetCurrentPortalSettings().PortalId).OfType<UserInfo>();
192+
foreach (var objUser in arrUsers)
190193
{
191194
if (!lstUsers.Contains(objUser.Email))
192195
{
@@ -197,12 +200,13 @@ public List<string> GetNotificationEmails(Topic topic)
197200
else
198201
{
199202
// This role should be legit
200-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in
201-
objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
203+
var roleInfo = objRoles.GetRoleByName(objModule.PortalID, role);
204+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, roleInfo.RoleName);
205+
foreach (var user in usersInRole)
202206
{
203-
if (!lstUsers.Contains(objUserRole.Email))
207+
if (!lstUsers.Contains(user.Email))
204208
{
205-
lstUsers.Add(objUserRole.Email);
209+
lstUsers.Add(user.Email);
206210
}
207211
}
208212
}
@@ -215,20 +219,24 @@ public List<string> GetNotificationEmails(Topic topic)
215219
if (fetchUsingDNNRoles)
216220
{
217221
// Fetch using dnn edit roles
218-
foreach (string role in objModule.AuthorizedEditRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
222+
var editRoles = objModule.ModulePermissions
223+
.Where(p => p.PermissionKey == "EDIT" && p.AllowAccess)
224+
.Select(p => p.RoleName);
225+
foreach (string role in editRoles)
219226
{
220227
if (role.ToLower().Equals("all users"))
221228
{
222229
// Trap against fake roles
223230
}
224231
else
225232
{
233+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, role);
226234
// This role should be legit
227-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
235+
foreach (var user in usersInRole)
228236
{
229-
if (!lstUsers.Contains(objUserRole.Email))
237+
if (!lstUsers.Contains(user.Email))
230238
{
231-
lstUsers.Add(objUserRole.Email);
239+
lstUsers.Add(user.Email);
232240
}
233241
}
234242
}
@@ -239,11 +247,12 @@ public List<string> GetNotificationEmails(Topic topic)
239247
// Fetch using custom wiki edit roles
240248
foreach (string role in wikiSettings.ContentEditorRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
241249
{
242-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
250+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, role);
251+
foreach (var user in usersInRole)
243252
{
244-
if (!lstUsers.Contains(objUserRole.Email))
253+
if (!lstUsers.Contains(user.Email))
245254
{
246-
lstUsers.Add(objUserRole.Email);
255+
lstUsers.Add(user.Email);
247256
}
248257
}
249258
}

BusinessObjects/UnitOfWork.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public UnitOfWork()
8282

8383
if (HttpContext.Current != null && HttpContext.Current.User.Identity.IsAuthenticated)
8484
{
85-
this.mCurrentUser = UserController.GetCurrentUserInfo();
85+
this.mCurrentUser = UserController.Instance.GetCurrentUserInfo();
8686
}
8787
}
8888

Utilities/DNNUtils.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using DotNetNuke.Common;
2727
using DotNetNuke.Common.Utilities;
2828
using DotNetNuke.Entities.Host;
29+
using DotNetNuke.Entities.Modules;
2930
using DotNetNuke.Entities.Portals;
3031
using DotNetNuke.Entities.Users;
3132
using DotNetNuke.Services.Journal;
@@ -67,7 +68,7 @@ public static void SendNotifications(
6768

6869
if (lstEmailsAddresses.Count > 0)
6970
{
70-
DotNetNuke.Entities.Portals.PortalSettings objPortalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
71+
var objPortalSettings = PortalController.Instance.GetCurrentPortalSettings();
7172
string strResourceFile = Globals.ApplicationPath + "/DesktopModules/Wiki/Views/" + Localization.LocalResourceDirectory + "/" + Localization.LocalSharedResourceFile;
7273
string strSubject = Localization.GetString("NotificationSubject", strResourceFile);
7374
string strBody = Localization.GetString("NotificationBody", strResourceFile);
@@ -130,11 +131,12 @@ public static void PostTopicCommentToJournal(
130131
string linkToTopic,
131132
int currentTab,
132133
string topicName,
133-
SharedEnum.DNNJournalType journalType)
134+
SharedEnum.DNNJournalType journalType,
135+
ModuleInfo moduleInfo)
134136
{
135137
if (HttpContext.Current != null && HttpContext.Current.User.Identity.IsAuthenticated)
136138
{
137-
UserInfo user = UserController.GetCurrentUserInfo();
139+
UserInfo user = UserController.Instance.GetCurrentUserInfo();
138140
if (user != null)
139141
{
140142
// Post to DotnetNuke Journal
@@ -159,7 +161,7 @@ public static void PostTopicCommentToJournal(
159161
//// http: //www.dnnsoftware.com/wiki/loc/history/Page/Journal/Revision/11
160162

161163
journalItem.Title = topicName;
162-
journalController.SaveJournalItem(journalItem, currentTab); // saving
164+
journalController.SaveJournalItem(journalItem, moduleInfo);
163165
}
164166
}
165167
}

Utilities/FeatureController.cs

Lines changed: 71 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@
2929
using DotNetNuke.Entities.Portals;
3030
using DotNetNuke.Entities.Users;
3131
using DotNetNuke.Services.Localization;
32-
using DotNetNuke.Services.Search;
32+
using DotNetNuke.Services.Search.Entities;
3333
using DotNetNuke.Wiki.BusinessObjects;
3434
using DotNetNuke.Wiki.BusinessObjects.Models;
3535
using System;
3636
using System.Collections;
37+
using System.Collections.Generic;
3738
using System.IO;
3839
using System.Web;
3940
using System.Xml;
@@ -51,90 +52,11 @@ namespace DotNetNuke.Wiki.Utilities
5152
/// populate with your own data.</para> <para>uncomment the interfaces to add the support.
5253
/// </para>
5354
/// </summary>
54-
public class FeatureController : IPortable, ISearchable // , IUpgradeable
55+
public class FeatureController : ModuleSearchBase, IPortable // , IUpgradeable
5556
{
56-
//// Implements IUpgradeable
57-
58-
#region Variables
59-
6057
private string mSharedResourceFile =
6158
DotNetNuke.Common.Globals.ApplicationPath + "/DesktopModules/Wiki/Views/" + Localization.LocalResourceDirectory + "/" + Localization.LocalSharedResourceFile;
6259

63-
#endregion Variables
64-
65-
#region Methods
66-
67-
/// <summary>
68-
/// Gets the search items.
69-
/// </summary>
70-
/// <param name="modInfo">The module information.</param>
71-
/// <returns>Topics that meet the search criteria.</returns>
72-
public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
73-
{
74-
using (UnitOfWork uOw = new UnitOfWork())
75-
{
76-
TopicBO topicBo = new TopicBO(uOw);
77-
78-
SearchItemInfoCollection searchItemCollection = new SearchItemInfoCollection();
79-
var topics = topicBo.GetAllByModuleID(modInfo.ModuleID);
80-
UserController uc = new UserController();
81-
82-
foreach (var topic in topics)
83-
{
84-
SearchItemInfo searchItem = new SearchItemInfo();
85-
86-
string strContent = null;
87-
string strDescription = null;
88-
string strTitle = null;
89-
if (!string.IsNullOrWhiteSpace(topic.Title))
90-
{
91-
strTitle = topic.Title;
92-
}
93-
else
94-
{
95-
strTitle = topic.Name;
96-
}
97-
98-
if (topic.Cache != null)
99-
{
100-
strContent = topic.Cache;
101-
strContent += " " + topic.Keywords;
102-
strContent += " " + topic.Description;
103-
104-
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Cache), false), 100,
105-
Localization.GetString("Dots", this.mSharedResourceFile));
106-
}
107-
else
108-
{
109-
strContent = topic.Content;
110-
strContent += " " + topic.Keywords;
111-
strContent += " " + topic.Description;
112-
113-
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Content), false), 100,
114-
Localization.GetString("Dots", this.mSharedResourceFile));
115-
}
116-
117-
int userID = 0;
118-
119-
userID = Null.NullInteger;
120-
if (topic.UpdatedByUserID != -9999)
121-
{
122-
userID = topic.UpdatedByUserID;
123-
}
124-
125-
searchItem = new SearchItemInfo(strTitle, strDescription, userID, topic.UpdateDate, modInfo.ModuleID, topic.Name, strContent, "topic=" + WikiMarkup.EncodeTitle(topic.Name));
126-
127-
//// New SearchItemInfo(ModInfo.ModuleTitle & "-" & strTitle, strDescription,
128-
//// userID, topic.UpdateDate, ModInfo.ModuleID, topic.Name, strContent, _
129-
//// "topic=" & WikiMarkup.EncodeTitle(topic.Name))
130-
131-
searchItemCollection.Add(searchItem);
132-
}
133-
134-
return searchItemCollection;
135-
}
136-
}
137-
13860
/// <summary>
13961
/// Exports the module.
14062
/// </summary>
@@ -148,7 +70,8 @@ public string ExportModule(int moduleID)
14870
var topics = topicBo.GetAllByModuleID(moduleID);
14971

15072
ModuleController mc = new ModuleController();
151-
Hashtable settings = mc.GetModuleSettings(moduleID);
73+
var module = mc.GetModule(moduleID);
74+
Hashtable settings = module.ModuleSettings;
15275

15376
StringWriter strXML = new StringWriter();
15477
XmlWriter writer = new XmlTextWriter(strXML);
@@ -228,7 +151,7 @@ public void ImportModule(int moduleID, string content, string version, int userI
228151
{
229152
node = node_loopVariable;
230153
var topic = new Topic();
231-
topic.PortalSettings = PortalController.GetCurrentPortalSettings();
154+
topic.PortalSettings = PortalController.Instance.GetCurrentPortalSettings();
232155
topic.AllowDiscussions = bool.Parse(node.Attributes["AllowDiscussions"].Value);
233156
topic.AllowRatings = bool.Parse(node.Attributes["AllowRatings"].Value);
234157
topic.Content = node.Attributes["Content"].Value;
@@ -264,26 +187,74 @@ public void ImportModule(int moduleID, string content, string version, int userI
264187
System.Diagnostics.Debug.WriteLine(ex);
265188
}
266189
}
267-
}
190+
}
191+
192+
public override IList<SearchDocument> GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
193+
{
194+
using (UnitOfWork uOw = new UnitOfWork())
195+
{
196+
TopicBO topicBo = new TopicBO(uOw);
197+
198+
var searchDocuments = new List<SearchDocument>();
199+
var topics = topicBo.GetAllByModuleID(moduleInfo.ModuleID);
200+
UserController uc = new UserController();
201+
202+
foreach (var topic in topics)
203+
{
204+
string strContent = null;
205+
string strDescription = null;
206+
string strTitle = null;
207+
if (!string.IsNullOrWhiteSpace(topic.Title))
208+
{
209+
strTitle = topic.Title;
210+
}
211+
else
212+
{
213+
strTitle = topic.Name;
214+
}
268215

269-
//// Public Function UpgradeModule(ByVal Version As String) As String Implements
270-
//// IUpgradeable.UpgradeModule InitPermissions() Return Version End Function
216+
if (topic.Cache != null)
217+
{
218+
strContent = topic.Cache;
219+
strContent += " " + topic.Keywords;
220+
strContent += " " + topic.Description;
271221

272-
//// Private Sub InitPermissions() Dim EditContent As Boolean
222+
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Cache), false), 100,
223+
Localization.GetString("Dots", this.mSharedResourceFile));
224+
}
225+
else
226+
{
227+
strContent = topic.Content;
228+
strContent += " " + topic.Keywords;
229+
strContent += " " + topic.Description;
273230

274-
//// Dim moduleDefId As Integer Dim pc As New PermissionController Dim permissions As
275-
//// ArrayList = pc.GetPermissionByCodeAndKey("WIKI", Nothing) Dim dc As New
276-
//// DesktopModuleController Dim desktopInfo As DesktopModuleInfo desktopInfo =
277-
//// dc.GetDesktopModuleByModuleName("Wiki") Dim mc As New ModuleDefinitionController Dim
278-
//// mInfo As ModuleDefinitionInfo mInfo =
279-
//// mc.GetModuleDefinitionByName(desktopInfo.DesktopModuleID, "Wiki") moduleDefId =
280-
//// mInfo.ModuleDefID For Each p As PermissionInfo In permissions If p.PermissionKey =
281-
//// "EDIT_CONTENT" And p.ModuleDefID = moduleDefId Then _ EditContent = True Next If Not
282-
//// EditContent Then Dim p As New PermissionInfo p.ModuleDefID = moduleDefId
283-
//// p.PermissionCode
284-
//// = "WIKI" p.PermissionKey = "EDIT_CONTENT" p.PermissionName = "Edit Content"
285-
//// pc.AddPermission(p) End If End Sub
231+
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Content), false), 100,
232+
Localization.GetString("Dots", this.mSharedResourceFile));
233+
}
234+
235+
int userID = 0;
286236

287-
#endregion Methods
237+
userID = Null.NullInteger;
238+
if (topic.UpdatedByUserID != -9999)
239+
{
240+
userID = topic.UpdatedByUserID;
241+
}
242+
243+
var searchDocument = new SearchDocument
244+
{
245+
Title = strTitle,
246+
Description = strDescription,
247+
AuthorUserId = userID,
248+
ModifiedTimeUtc = topic.UpdateDate.ToUniversalTime(),
249+
ModuleId = moduleInfo.ModuleID,
250+
UniqueKey = $"wikitopic={WikiMarkup.EncodeTitle(topic.Name)}",
251+
Body = strContent,
252+
};
253+
searchDocuments.Add(searchDocument);
254+
}
255+
256+
return searchDocuments;
257+
}
258+
}
288259
}
289260
}

0 commit comments

Comments
 (0)