Skip to content

Commit

Permalink
pluginpermissions
Browse files Browse the repository at this point in the history
  • Loading branch information
starlying committed Apr 8, 2020
1 parent 01f001c commit 96eb64b
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 24 deletions.
2 changes: 1 addition & 1 deletion SiteServer.CMS/Core/TabManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public static List<Tab> GetTabList(string topId, int siteId)

if (isExists) continue;

tabs.Add(PluginMenuManager.GetPluginTab(menu.PluginId, string.Empty, menu));
tabs.Add(PluginMenuManager.GetPluginTab(menu.PluginId, null, menu));

//if (string.IsNullOrEmpty(menu.ParentId))
//{
Expand Down
37 changes: 19 additions & 18 deletions SiteServer.CMS/Plugin/PluginMenuManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,9 @@ public static List<PluginMenu> GetTopMenus()

if (metadataMenus.Count == 0) continue;

var i = 0;
foreach (var metadataMenu in metadataMenus)
{
var pluginMenu = GetMenu(service.PluginId, 0, 0, 0, metadataMenu, ++i);
var pluginMenu = GetMenu(service.PluginId, 0, 0, 0, metadataMenu);
menus.Add(pluginMenu);
}
}
Expand Down Expand Up @@ -116,10 +115,9 @@ public static List<PluginMenu> GetSiteMenus(int siteId)

if (metadataMenus.Count == 0) continue;

var i = 0;
foreach (var metadataMenu in metadataMenus)
{
var pluginMenu = GetMenu(service.PluginId, siteId, 0, 0, metadataMenu, ++i);
var pluginMenu = GetMenu(service.PluginId, siteId, 0, 0, metadataMenu);
menus.Add(pluginMenu);
}
}
Expand Down Expand Up @@ -158,10 +156,9 @@ public static List<PluginMenu> GetContentMenus(List<string> pluginIds, ContentIn

if (metadataMenus.Count == 0) continue;

var i = 0;
foreach (var metadataMenu in metadataMenus)
{
var pluginMenu = GetMenu(service.PluginId, contentInfo.SiteId, contentInfo.ChannelId, contentInfo.Id, metadataMenu, ++i);
var pluginMenu = GetMenu(service.PluginId, contentInfo.SiteId, contentInfo.ChannelId, contentInfo.Id, metadataMenu);
menus.Add(pluginMenu);
}
}
Expand Down Expand Up @@ -241,7 +238,7 @@ private static string GetMenuHref(string pluginId, string href, int siteId, int
// });
//}

private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, int contentId, Menu metadataMenu, int i)
private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, int contentId, Menu metadataMenu)
{
var menu = new PluginMenu
{
Expand All @@ -255,7 +252,7 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in

if (string.IsNullOrEmpty(menu.Id))
{
menu.Id = pluginId + i;
menu.Id = metadataMenu.Text;
}
if (!string.IsNullOrEmpty(menu.Href))
{
Expand All @@ -269,10 +266,9 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in
if (metadataMenu.Menus != null && metadataMenu.Menus.Count > 0)
{
var children = new List<Menu>();
var x = 1;
foreach (var childMetadataMenu in metadataMenu.Menus)
{
var child = GetMenu(pluginId, siteId, channelId, contentId, childMetadataMenu, x++);
var child = GetMenu(pluginId, siteId, channelId, contentId, childMetadataMenu);

children.Add(child);
}
Expand All @@ -282,7 +278,7 @@ private static PluginMenu GetMenu(string pluginId, int siteId, int channelId, in
return menu;
}

public static Tab GetPluginTab(string pluginId, string prefix, Menu menu)
public static Tab GetPluginTab(string pluginId, Menu parent, Menu menu)
{
var tab = new Tab
{
Expand All @@ -302,15 +298,15 @@ public static Tab GetPluginTab(string pluginId, string prefix, Menu menu)
for (var i = 0; i < menu.Menus.Count; i++)
{
var child = menu.Menus[i];
var childPermission = GetMenuPermission(pluginId, menu.Text, child);
var childPermission = GetMenuPermission(pluginId, menu, child);
permissions.Add(childPermission);

tab.Children[i] = GetPluginTab(pluginId, menu.Text, child);
tab.Children[i] = GetPluginTab(pluginId, menu, child);
}
}
else
{
var permission = GetMenuPermission(pluginId, prefix, menu);
var permission = GetMenuPermission(pluginId, parent, menu);
permissions.Add(permission);
}
tab.Permissions = TranslateUtils.ObjectCollectionToString(permissions);
Expand All @@ -333,9 +329,14 @@ public static Tab GetPluginTab(string pluginId, string prefix, Menu menu)
return permissions;
}

private static string GetMenuPermission(string pluginId, string prefix, Menu menu)
private static string GetMenuPermission(string pluginId, Menu parent, Menu menu)
{
return string.IsNullOrEmpty(prefix) ? $"{pluginId}:{menu.Text}" : $"{pluginId}:{prefix}:{menu.Text}";
var prefix = string.Empty;
if (parent != null)
{
prefix = string.IsNullOrEmpty(parent.Id) ? $":{parent.Text}" : $":{parent.Id}";
}
return string.IsNullOrEmpty(menu.Id) ? $"{pluginId}{prefix}:{menu.Text}" : $"{pluginId}{prefix}:{menu.Id}";
}

public static List<PermissionConfigManager.PermissionConfig> GetSitePermissions(int siteId)
Expand All @@ -355,13 +356,13 @@ private static string GetMenuPermission(string pluginId, string prefix, Menu men
{
foreach (var menu in metadataMenu.Menus)
{
var permission = GetMenuPermission(service.PluginId, metadataMenu.Text, menu);
var permission = GetMenuPermission(service.PluginId, metadataMenu, menu);
permissions.Add(new PermissionConfigManager.PermissionConfig(permission, $"{service.Metadata.Title} -> {menu.Text}"));
}
}
else
{
var permission = GetMenuPermission(service.PluginId, string.Empty, metadataMenu);
var permission = GetMenuPermission(service.PluginId, null, metadataMenu);
permissions.Add(new PermissionConfigManager.PermissionConfig(permission, $"{service.Metadata.Title} -> {metadataMenu.Text}"));
}
}
Expand Down
3 changes: 0 additions & 3 deletions SiteServer.CMS/Provider/ContentDao.Select.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using Datory;
using OpenXmlPowerTools;
using SiteServer.CMS.Core;
using SiteServer.CMS.DataCache;
using SiteServer.CMS.DataCache.Stl;
Expand Down
10 changes: 8 additions & 2 deletions SiteServer.CMS/Provider/ContentDao.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1440,7 +1440,10 @@ public List<int> GetIdListBySameTitle(string tableName, int channelId, string ti

public int GetCountCheckedImage(int siteId, int channelId)
{
var tableName = SiteManager.GetSiteInfo(siteId).TableName;
var siteInfo = SiteManager.GetSiteInfo(siteId);
if (siteInfo == null) return 0;

var tableName = siteInfo.TableName;
var sqlString =
$"SELECT COUNT(*) FROM {tableName} WHERE {ContentAttribute.ChannelId} = {channelId} AND {nameof(ContentInfo.ImageUrl)} != '' AND {ContentAttribute.IsChecked} = '{true}' AND {ContentAttribute.SourceId} != {SourceManager.Preview}";

Expand All @@ -1449,7 +1452,10 @@ public int GetCountCheckedImage(int siteId, int channelId)

public int GetCountChecking(int siteId)
{
var tableName = SiteManager.GetSiteInfo(siteId).TableName;
var siteInfo = SiteManager.GetSiteInfo(siteId);
if (siteInfo == null) return 0;

var tableName = siteInfo.TableName;
var sqlString =
$"SELECT COUNT(*) FROM {tableName} WHERE {ContentAttribute.ChannelId} > 0 AND {ContentAttribute.IsChecked} = '{false}' AND {ContentAttribute.SourceId} != {SourceManager.Preview}";

Expand Down
3 changes: 3 additions & 0 deletions SiteServer.Web/Web.config
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
<add key="AdminDirectory" value="SiteServer" />
<add key="HomeDirectory" value="Home" />
<add key="SecretKey" value="eef9e4b0d48bf7a5" />
<!-- <add key="DatabaseType" value="MySql" />
<add key="ConnectionString" value="" /> -->

<add key="DatabaseType" value="MySql" />
<add key="ConnectionString" value="" />

Expand Down

0 comments on commit 96eb64b

Please sign in to comment.