示例#1
0
        private void CheckPermissions(MethodInfo method)
        {
            object[] perms = (object[])permCache[method];
            if (perms == null)
            {
                permCache.Add(method, perms = method.GetCustomAttributes(typeof(DemandPermissionsAttribute), true));
            }

            if (perms.Length > 0)
            {
                if (Context.CurrentUser is IExtendedPrincipal)
                {
                    PermissionChecker.CheckPermissions((IExtendedPrincipal)Context.CurrentUser, perms, "O usuário '{0}' não possui a permissão necessária.");
                }
                else
                {
                    throw new SecurityException("Usuário não conectado.");
                }
            }
        }
示例#2
0
 public static void CheckUserPermissions(Type t)
 {
     PermissionChecker.CheckPermissions(t, CurrentUser, null);
 }
示例#3
0
 public static void CheckUserPermissions()
 {
     PermissionChecker.CheckPermissions(CurrentUser);
 }
        public void ChechGuestPermissions()
        {
            var checker = new PermissionChecker();

            Assert.AreEqual(false, checker.CheckPermissions(new Mp3File("sample.mp3"), UserRole.Guest));
        }
        public void ChechAdministratorPermissions()
        {
            var checker = new PermissionChecker();

            Assert.AreEqual(true, checker.CheckPermissions(new Mp3File("sample.mp3"), UserRole.Administrator));
        }