.NET Fiddle

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
	
public class Program
{
	enum UserPermission { Permission1, Permission2 }
	
	interface IUserRole
	{
		bool HasPermission(UserPermission perm);
	}
	
	class NormalUser : IUserRole
	{
		private static readonly List<UserPermission> _permissions = new() 
		{
			UserPermission.Permission1 
		};
		
		public bool HasPermission(UserPermission perm)
		{
			return _permissions.Any(x => x == perm);
		}
	}
	
	class Administrator : IUserRole
	{
		private static readonly List<UserPermission> _permissions = new() 
		{
			UserPermission.Permission1,
			UserPermission.Permission2
		};
		
		public bool HasPermission(UserPermission perm)
		{
			return _permissions.Any(x => x == perm);
		}
	}
	
	public static void Main()
	{
		IUserRole role = new Administrator();
		var hasPermission = role.HasPermission(UserPermission.Permission1);
		Console.WriteLine($"Has Permission: {hasPermission}");
	}
}
;