src/SSCMS.Web/Controllers/Admin/Settings/Administrators/AdministratorsController.GetPermissions.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using SSCMS.Core.Utils;
using SSCMS.Models;
namespace SSCMS.Web.Controllers.Admin.Settings.Administrators
{
public partial class AdministratorsController
{
[HttpGet, Route(RoutePermissions)]
public async Task<ActionResult<GetPermissionsResult>> GetPermissions(int adminId)
{
if (!await _authManager.HasAppPermissionsAsync(MenuUtils.AppPermissions.SettingsAdministrators))
{
return Unauthorized();
}
var isSuperAdmin = await _authManager.IsSuperAdminAsync();
List<string> roles;
var allSites = new List<Site>();
string adminLevel;
var checkedSites = new List<int>();
var checkedRoles = new List<string>();
if (isSuperAdmin)
{
roles = await _roleRepository.GetRoleNamesAsync();
roles = roles.Where(x => !_roleRepository.IsPredefinedRole(x)).ToList();
allSites = await _siteRepository.GetSitesAsync();
var adminInfo = await _administratorRepository.GetByUserIdAsync(adminId);
var adminRoles = await _administratorsInRolesRepository.GetRolesForUserAsync(adminInfo.UserName);
if (_roleRepository.IsConsoleAdministrator(adminRoles))
{
adminLevel = "SuperAdmin";
}
else if (_roleRepository.IsSystemAdministrator(adminRoles))
{
adminLevel = "SiteAdmin";
checkedSites = adminInfo.SiteIds;
}
else
{
adminLevel = "Admin";
foreach (var role in roles)
{
if (!checkedRoles.Contains(role) && !_roleRepository.IsPredefinedRole(role) && adminRoles.Contains(role))
{
checkedRoles.Add(role);
}
}
}
}
else
{
roles = await _roleRepository.GetRoleNamesByCreatorUserNameAsync(_authManager.AdminName);
后面还有 26 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
