Skip to content

Commit c7c52ab

Browse files
committed
Added permissions for content slider
1 parent 76bde84 commit c7c52ab

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

src/Libraries/SmartStore.Data/Migrations/201912111821362_AddNewPermissions.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,26 @@ public override void Down()
2222

2323
public void Seed(SmartObjectContext context)
2424
{
25-
var adminRole = context.Set<CustomerRole>().FirstOrDefault(x => x.SystemName == "Administrators");
25+
var allRoles = context.Set<CustomerRole>().ToList();
26+
var adminRole = allRoles.FirstOrDefault(x => x.SystemName == SystemCustomerRoleNames.Administrators);
2627
var migrator = new PermissionMigrator(context);
2728

2829
var pluginDescriptors = PluginFinder.Current.GetPluginDescriptors();
2930
var installedPlugins = pluginDescriptors.Select(x => x.SystemName).ToList();
3031

31-
// TODO: more plugins to come...
3232
var pluginTypeNames = new Dictionary<string, string>
3333
{
3434
{ "SmartStore.DevTools", "SmartStore.DevTools.Security.DevToolsPermissions, SmartStore.DevTools" },
3535
{ "SmartStore.OutputCache", "SmartStore.OutputCache.Security.OutputCachePermissions, SmartStore.OutputCache" },
36+
{ "SmartStore.ContentSlider", "SmartStore.ContentSlider.Security.ContentSliderPermissions, SmartStore.ContentSlider" }
3637
};
3738

39+
// Special cases.
40+
var displayPublicPermissions = new string[] { "contentslider.displayslider" };
41+
var displayPublicRoles = allRoles
42+
.Where(x => x.SystemName == SystemCustomerRoleNames.ForumModerators || x.SystemName == SystemCustomerRoleNames.Guests || x.SystemName == SystemCustomerRoleNames.Registered)
43+
.ToArray();
44+
3845
foreach (var pluginTypeName in pluginTypeNames)
3946
{
4047
// Add permissions only for installed plugins.
@@ -49,6 +56,16 @@ public void Seed(SmartObjectContext context)
4956
{
5057
// Allow root permission for admin.
5158
migrator.Allow(rootPermission, true, adminRole);
59+
60+
// Handle special cases.
61+
foreach (var name in displayPublicPermissions)
62+
{
63+
var displayPublicPermission = newPermissions.FirstOrDefault(x => x.SystemName == name);
64+
if (displayPublicPermission != null)
65+
{
66+
migrator.Allow(displayPublicPermission, true, displayPublicRoles);
67+
}
68+
}
5269
}
5370
}
5471
}

src/Plugins/SmartStore.DevTools/Security/DevToolsPermissionProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
namespace SmartStore.DevTools.Security
88
{
99
/// <summary>
10-
/// All permissions provided by this plugin.
10+
/// All permissions provided by this plugin. Recommended to use singular for names, <see cref="Permissions"/>.
1111
/// "devtools" is the root permission (by convention, doesn't contain any dot). Localization key is "Plugins.Permissions.DisplayName.DevTools".
1212
/// "devtools.read" and "devtools.update" do not need localization because they are contained in core, <see cref="PermissionService._displayNameResourceKeys"/>.
1313
/// </summary>

0 commit comments

Comments
 (0)