OK, so being the impatient sort and having to roll out the new website to the powers-that-be tomorrow morning, I decided to take a run at the source code. I'm providing my discoveries here in case anyone else needs a solution as fast as I do.
The offending file is in the DotNetNuke library project (Library/DotNetNuke.Library.VS2008), Library/UI/Modules/ModuleInstanceContext.vb.
At the very bottom of the file is the following block:
If
Not
IsAdminControl()
AndAlso
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Edit,
"DELETE,MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID,
"~"
,
""
)
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Edit,
"MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.ModuleSettings, Localization.GlobalResourceFile), ModuleActionType.ModuleSettings,
""
,
"action_settings.gif"
, NavigateURL(TabId,
"Module"
,
"ModuleId="
& ModuleId.ToString),
False
, SecurityAccessLevel.Edit,
True
,
False
)
End
If
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Edit,
"DELETE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.DeleteModule, Localization.GlobalResourceFile), ModuleActionType.DeleteModule, Configuration.ModuleID.ToString,
"action_delete.gif"
,
""
,
"confirm('"
+ DotNetNuke.UI.Utilities.ClientAPI.GetSafeJSString(Localization.GetString(
"DeleteModule.Confirm"
)) +
"')"
,
False
, SecurityAccessLevel.View,
True
,
False
)
End
If
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Edit,
"MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.ClearCache, Localization.GlobalResourceFile), ModuleActionType.ClearCache, Configuration.ModuleID.ToString,
"action_refresh.gif"
,
""
,
False
, SecurityAccessLevel.View,
True
,
False
)
' module movement
AddMenuMoveActions()
End
If
End
If
I replaced all of the "
HasModuleAccess(SecurityAccessLevel.Edit
" with "
HasModuleAccess(SecurityAccessLevel.Admin
" (which is what it was in v5.5):
If
Not
IsAdminControl()
AndAlso
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Admin,
"DELETE,MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID,
"~"
,
""
)
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Admin,
"MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.ModuleSettings, Localization.GlobalResourceFile), ModuleActionType.ModuleSettings,
""
,
"action_settings.gif"
, NavigateURL(TabId,
"Module"
,
"ModuleId="
& ModuleId.ToString),
False
, SecurityAccessLevel.Edit,
True
,
False
)
End
If
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Admin,
"DELETE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.DeleteModule, Localization.GlobalResourceFile), ModuleActionType.DeleteModule, Configuration.ModuleID.ToString,
"action_delete.gif"
,
""
,
"confirm('"
+ DotNetNuke.UI.Utilities.ClientAPI.GetSafeJSString(Localization.GetString(
"DeleteModule.Confirm"
)) +
"')"
,
False
, SecurityAccessLevel.View,
True
,
False
)
End
If
If
ModulePermissionController.HasModuleAccess(SecurityAccessLevel.Admin,
"MANAGE"
, Configuration)
Then
_actions.Add(GetNextActionID, Localization.GetString(ModuleActionType.ClearCache, Localization.GlobalResourceFile), ModuleActionType.ClearCache, Configuration.ModuleID.ToString,
"action_refresh.gif"
,
""
,
False
, SecurityAccessLevel.View,
True
,
False
)
' module movement
AddMenuMoveActions()
End
If
End
If
Then I recompiled, made a backup copy of DotNetNuke.dll (bin/DotNetNuke.dll) in my live site, copied the new DotNetNuke.dll into the bin directory, and so far it works like a charm.