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 })); }
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); }
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); }