File size: 1,028 Bytes
ecb51fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using Microsoft.EntityFrameworkCore;
using System.Threading.Tasks;
using TaskTrackingSystem.Database.AppDbContextModels;

namespace TaskTrackingSystem.WebApi.Infrastructure
{
    public static class DataScopeAuthorization
    {
        public static async Task<bool> IsAdminScopeAsync(AppDbContext db, long roleId)
        {
            if (roleId <= 0) return false;
            return await db.RolePermissions.AnyAsync(rp => 
                rp.RoleId == roleId && 
                !rp.IsDeleted && 
                rp.Permission.PermissionCode == "Roles_List" && 
                !rp.Permission.IsDeleted);
        }

        public static async Task<bool> IsManagerScopeAsync(AppDbContext db, long roleId)
        {
            if (roleId <= 0) return false;
            return await db.RolePermissions.AnyAsync(rp => 
                rp.RoleId == roleId && 
                !rp.IsDeleted && 
                rp.Permission.PermissionCode == "Projects_Create" && 
                !rp.Permission.IsDeleted);
        }
    }
}