2424#endregion Copyright
2525
2626using DotNetNuke . Entities . Users ;
27+ using DotNetNuke . Security . Roles ;
2728using DotNetNuke . Wiki . BusinessObjects . Models ;
2829using DotNetNuke . Wiki . Utilities ;
2930using 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 . GetCurrentSettings ( ) . 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 }
0 commit comments