ABPCMS.EntityFramework/Migrations/SeedData/HostRoleAndUserCreator.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Linq;
using Abp.Authorization;
using Abp.Authorization.Roles;
using Abp.Authorization.Users;
using Abp.MultiTenancy;
using ABPCMS.Authorization;
using ABPCMS.Authorization.Roles;
using ABPCMS.Authorization.Users;
using ABPCMS.EntityFramework;
using Microsoft.AspNet.Identity;
namespace ABPCMS.Migrations.SeedData
{
public class HostRoleAndUserCreator
{
private readonly ABPCMSDbContext _context;
public HostRoleAndUserCreator(ABPCMSDbContext context)
{
_context = context;
}
public void Create()
{
CreateHostRoleAndUsers();
}
private void CreateHostRoleAndUsers()
{
//Admin role for host
var adminRoleForHost = _context.Roles.FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);
if (adminRoleForHost == null)
{
adminRoleForHost = _context.Roles.Add(new Role { Name = StaticRoleNames.Host.Admin, DisplayName = StaticRoleNames.Host.Admin, IsStatic = true });
_context.SaveChanges();
//Grant all tenant permissions
var permissions = PermissionFinder
.GetAllPermissions(new ABPCMSAuthorizationProvider())
.Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host))
.ToList();
//将UserInfoAuthorizationProvider相关Permission赋予给Admin
var UserInfoAuthorization =
PermissionFinder.GetAllPermissions(new UserInfoAuthorizationProvider()).ToList();
permissions.AddRange(UserInfoAuthorization);
foreach (var permission in permissions)
{
_context.Permissions.Add(
new RolePermissionSetting
{
Name = permission.Name,
IsGranted = true,
RoleId = adminRoleForHost.Id
});
}
_context.SaveChanges();
后面还有 27 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
