예제 #1
0
        public IActionResult List(string search)
        {
            var canManage = CurrentPermissions.Has(UserPermissions.ManageUsers);

            search = search?.ToLower() ?? string.Empty;

            var users = _userRepository.Select(u => u.Id == CurrentUser.Id || u.HierarchyLevel > CurrentUser.Hierarchy,
                                               u => new ListModel.User
            {
                Id             = u.Id,
                Alias          = u.Alias,
                Login          = canManage ? u.Login : null,
                HierarchyLevel = canManage ? u.HierarchyLevel : int.MaxValue,
                Permissions    = canManage ? u.Permissions : UserPermissions.None
            })
                        .Where(u =>
                               u.Id.ToString().ToLower().Contains(search) ||
                               u.Alias.ToLower().Contains(search) ||
                               canManage && (u.Login.ToLower().Contains(search) || u.HierarchyLevel.ToString().ToLower().Contains(search) || u.Permissions.ToString().ToLower().Contains(search)))
                        .OrderBy(u => u.Alias)
                        .ThenBy(u => u.HierarchyLevel)
                        .ToArray();

            return(View("~/Views/User/List.cshtml", new ListModel
            {
                Search = search,
                Users = users
            }));
        }
예제 #2
0
        private async Task <bool> RequestStoragePermission()
        {
            //We always have permission on anything lower than marshmallow.
            if ((int)Build.VERSION.SdkInt < 23)
            {
                return(true);
            }

            var status = await CurrentPermissions.CheckPermissionStatusAsync(Permission.Storage);

            if (status == PermissionStatus.Granted)
            {
                return(true);
            }

            Console.WriteLine("Does not have storage permission granted, requesting.");
            var results = await CurrentPermissions.RequestPermissionsAsync(Permission.Storage);

            if (!results.ContainsKey(Permission.Storage) || results[Permission.Storage] == PermissionStatus.Granted)
            {
                return(true);
            }

            Console.WriteLine("Storage permission Denied.");
            return(false);
        }
예제 #3
0
        public void InitOptions()
        {
            PermissionOptions = new List <SelectListItem>();
            var peOptions = (PermissionEnum[])Enum.GetValues(typeof(PermissionEnum));

            for (int i = 0; i < peOptions.Length; i++)
            {
                if (CurrentPermissions.Any(x => x.Permission == peOptions[i]))
                {
                    //Don't include an option if employee already has that permission
                    continue;
                }
                PermissionOptions.Add(new SelectListItem(peOptions[i].ToString(), i.ToString()));
            }
        }
        private async Task <bool> CheckPermissions()
        {
            var status = await CurrentPermissions.CheckPermissionStatusAsync(Permission.Location);

            if (status == PermissionStatus.Granted)
            {
                return(true);
            }

            Console.WriteLine("Currently does not have Location permissions, requesting permissions");

            var request = await CurrentPermissions.RequestPermissionsAsync(Permission.Location);

            if (request[Permission.Location] == PermissionStatus.Granted)
            {
                return(true);
            }

            Console.WriteLine("Location permission denied, can not get positions async.");
            return(false);
        }