public async Task DeleteGroup(PermissionsGroup group) { var perm = group.Scope switch { PermissionsScope.Global => "permissions.deletegroup.global", PermissionsScope.Server => "permissions.deletegroup.server", PermissionsScope.Channel => "permissions.deletegroup.channel", _ => "permissions.deletegroup.any", }; var permsCheck = await PermissionService.HasPermission(perm, Context).ConfigureAwait(false); if (!permsCheck.HasValue || !permsCheck.Value) { await Context.Channel.SendMessageAsync("You do not have permission to do that!").ConfigureAwait(false); return; } if (group.Id == 0) { await Context.Channel.SendMessageAsync("That group does not exist!").ConfigureAwait(false); return; } await PermissionService.DeleteGroup(group).ConfigureAwait(false); await Context.Channel.SendMessageAsync("Deleted group").ConfigureAwait(false); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Name,PermissionId,ContractId")] PermissionsGroup permissionsGroup) { if (id != permissionsGroup.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(permissionsGroup); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PermissionsGroupExists(permissionsGroup.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ContractId"] = new SelectList(_context.Contracts, "Id", "Id", permissionsGroup.ContractId); return(View(permissionsGroup)); }
public RestResponse SetPlayerGroup(ulong steamId, string group) { RestResponse restResponse = new RestResponse(); SuccessResponse successResponse = new SuccessResponse(); if (Players.TryGetPlayer(new NetworkID(new Steamworks.CSteamID(steamId)), out var player)) { EnsureLoaded(); if (!Groups.ContainsKey(group)) { successResponse.Success = false; successResponse.Details = $"Failed to set user to group [{group}], it does not exist."; } else { if (Users.TryGetValue(player.ID, out PermissionsGroup value)) { value.SetGroup(group); } else { PermissionsGroup permissionsGroup = DefaultNormal.Copy(); permissionsGroup.SetGroup(group); Users[player.ID] = permissionsGroup; } SaveUsers(); successResponse.Success = true; } } restResponse.Content = successResponse.ToUTF8SerializedJson(); return(restResponse); }
public async Task <IActionResult> Create([Bind("Id,Name,PermissionId,ContractId")] PermissionsGroup permissionsGroup) { if (ModelState.IsValid) { _context.Add(permissionsGroup); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ContractId"] = new SelectList(_context.Contracts, "Id", "Id", permissionsGroup.ContractId); return(View(permissionsGroup)); }
public override Task <TypeReaderResult> ReadAsync(ICommandContext context, string input, IServiceProvider services) { var permissionService = services.GetRequiredService <PermissionService>(); var name = input.Substring(1); PermissionsGroup group; switch (input.Substring(0, 1)) { case "%": // global group group = permissionService.GetGroup(PermissionsScope.Global, name); if (group == null) { group = new PermissionsGroup() { GroupName = name, Scope = PermissionsScope.Global }; } return(Task.FromResult(TypeReaderResult.FromSuccess(group))); case "!": // server group group = permissionService.GetGroup(PermissionsScope.Server, name, context.Guild.Id); if (group == null) { group = new PermissionsGroup() { GroupName = name, Scope = PermissionsScope.Server, ServerId = context.Guild.Id }; } return(Task.FromResult(TypeReaderResult.FromSuccess(group))); case "^": // channel group group = permissionService.GetGroup(PermissionsScope.Channel, name, context.Guild.Id, context.Channel.Id); if (group == null) { group = new PermissionsGroup() { GroupName = name, Scope = PermissionsScope.Channel, ServerId = context.Guild.Id, ChannelId = context.Channel.Id }; } return(Task.FromResult(TypeReaderResult.FromSuccess(group))); default: return(Task.FromResult(TypeReaderResult.FromError(CommandError.ParseFailed, "Could not figure out the group type."))); } }
public static PermissionsGroupViewModel ToViewModel(this PermissionsGroup model) { if (model == null) { return(null); } else { return(new PermissionsGroupViewModel { Name = model.Name, Permissions = model.Permissions.ToListPermissionViewModels().ToArray() }); } }
public async Task <PermissionsGroup> CreateGroup(PermissionsScope scope, string name, ulong ServerId = 0, ulong ChannelId = 0) { var group = new PermissionsGroup() { GroupName = name, Scope = scope, ServerId = ServerId, ChannelId = ChannelId }; group = DbService.PermissionGroups.Add(group).Entity; await DbService.SaveChangesAsync().ConfigureAwait(false); return(group); }
public static List <Permission> GetSystemActions(this PermissionsGroup @group) { List <Permission> list = new List <Permission>(); switch (@group) { case PermissionsGroup.Job: list.Add(Permission.CAN_CREATE_JOB); list.Add(Permission.CAN_CONFIRM_JOB); list.Add(Permission.CAN_SEE_PAY_RATE); break; case PermissionsGroup.Hotel_Airfare_Parking: list.Add(Permission.CAN_MANAGE_TRAVELLING); list.Add(Permission.CAN_REQUEST_HOTEL); list.Add(Permission.CAN_APPROVE_HOTEL); list.Add(Permission.CAN_BOOK_HOTEL); list.Add(Permission.CAN_CONFIRM_HOTEL_BOOKING); list.Add(Permission.CAN_DELETE_HOTEL_REQUEST); list.Add(Permission.CAN_REQUEST_AIRFARE); list.Add(Permission.CAN_APPROVE_AIRFARE); list.Add(Permission.CAN_BOOK_AIRFARE); list.Add(Permission.CAN_CONFIRM_AIRFARE_BOOKING); list.Add(Permission.CAN_DELETE_AIRFARE_REQUEST); break; case PermissionsGroup.Messaging: list.Add(Permission.CAN_SEND_EMAILS); list.Add(Permission.CAN_SEND_SMS); list.Add(Permission.CAN_SEND_MESSAGES_TO_ALL); list.Add(Permission.CAN_SEND_MESSAGES_TO_STAFF); list.Add(Permission.CAN_SEND_MESSAGES_TO_VOLUNTEERS); list.Add(Permission.CAN_SEND_MESSAGES_TO_PARTICIPANT); break; case PermissionsGroup.Reporting: list.Add(Permission.CAN_EXPORT_PREREQUISITES); list.Add(Permission.CAN_EXPORT_MERCHANDISE); list.Add(Permission.CAN_EXPORT_FINANCIAL); list.Add(Permission.CAN_EXPORT_TIMELINE); list.Add(Permission.CAN_EXPORT_CREDENTIALS); list.Add(Permission.CAN_EXPORT_INVENTORY); break; case PermissionsGroup.MPTS: list.Add(Permission.SEARCH_PARTICIPANT); list.Add(Permission.SEARCH_PATIENT); list.Add(Permission.SEARCH_FASTTRACK); list.Add(Permission.RUNNER_TRENSPORT_SERVICE_CHECK_IN); list.Add(Permission.EMS_VEHICLE_CHECK_IN); list.Add(Permission.EMS_VEHICLES_ADMIN); list.Add(Permission.MEDICAL_TENT_CHEKC_IN); list.Add(Permission.FAST_TRACK_CHECK_IN); list.Add(Permission.ATHLETE_CHECK_IN); list.Add(Permission.CAN_READ_PATIENT_MEDICAL_INFO); list.Add(Permission.SET_MPTS_RACE); list.Add(Permission.SEND_PUSH_NOTIFICATION); list.Add(Permission.SET_CHECK_IN_LOCATION); list.Add(Permission.CAN_SEE_MPTS_SUMMARIES); list.Add(Permission.CAN_ACCESS_ALL_MPTS_UNITS); list.Add(Permission.CAN_EDIT_MPTS_VISIT); list.Add(Permission.CAN_MANAGE_MPTS_ADMINISTRATION); break; //Case SystemActionGroupList.MERCHANDISE // list.Add(Permission.CAN_MANAGE_MERCHANDISE) case PermissionsGroup.SURVEY: list.Add(Permission.CAN_MANAGE_SURVEY); list.Add(Permission.CAN_CREATE_SURVEY); break; case PermissionsGroup.TIMELINE: list.Add(Permission.CAN_MANAGE_TIMELINE); list.Add(Permission.CAN_CREATE_TIMELINE); list.Add(Permission.CAN_SEE_ALL_TIMELINE); break; case PermissionsGroup.VOLUNTEERS: list.Add(Permission.CAN_SEARCH_VOLUNTEERS); list.Add(Permission.CAN_MANAGE_VOLUNTEERS); list.Add(Permission.CAN_CHECKIN_VOLUNTEERS); list.Add(Permission.CAN_CONFIRM_POSITION_APPLICATION); list.Add(Permission.CAN_CHECK_VOLUNTEER_MEDICAL_LICENSE); list.Add(Permission.CAN_CREATE_EDIT_VOLUNTEER_POSITION); list.Add(Permission.CAN_CREATE_EDIT_VOLUNTEER_SHIFT); list.Add(Permission.CAN_CREATE_VOLUNTEER_GROUP); break; case PermissionsGroup.TRANSPORTATION: list.Add(Permission.CAN_MANAGE_TRANSPORTATION); break; //' Case SystemActionGroupList.CHECK_iN case PermissionsGroup.INVENTORY: list.Add(Permission.CAN_MANAGE_WHOLE_INVENTORY); list.Add(Permission.CAN_MANAGE_EQUIPMENT); list.Add(Permission.CAN_MANAGE_RADIOS); list.Add(Permission.CAN_SEE_EQUIPMENT_LISTS); list.Add(Permission.CAN_MANAGE_STORAGES); list.Add(Permission.CAN_MANAGE_EQUIPMENT_SETUP); list.Add(Permission.CAN_MANAGE_VEHICLES); list.Add(Permission.CAN_CONFIRM_REQUESTED_ITEMS); list.Add(Permission.CAN_CONFIRM_REQUESTED_VEHICLES); list.Add(Permission.CAN_ADD_AND_VALIDATE_CREDENTIALS); break; case PermissionsGroup.Personnel: list.Add(Permission.CAN_CHECKIN_EVENT_STAFF); list.Add(Permission.CAN_CHECKIN_EXHIBITORS); list.Add(Permission.CAN_CHECKIN_RACE_MANAGEMENT); list.Add(Permission.CAN_SEARCH_EVENT_STAFF); list.Add(Permission.CAN_SEARCH_PARTICIPANT); list.Add(Permission.CAN_MANAGE_EVENT_STAFF); list.Add(Permission.CAN_MANAGE_OFFICE_STAFF); list.Add(Permission.CAN_MANAGE_FORWARD_COMMAND); list.Add(Permission.CAN_MANAGE_EXHIBITOR); list.Add(Permission.CAN_MANAGE_VENDOR); list.Add(Permission.CAN_MANAGE_SPONSOR); list.Add(Permission.CAN_MANAGE_CHARITY); list.Add(Permission.CAN_MANAGE_PARTICIPANT); list.Add(Permission.CAN_MANAGE_VIP); list.Add(Permission.CAN_MANAGE_MEDIA); list.Add(Permission.CAN_SEE_SAME_LEVEL_LOGIN_LINK); list.Add(Permission.CAN_EDIT_TEAM_PERSONAL_INFO); list.Add(Permission.CAN_TOGGLE_BETWEEN_EVENTS); break; } return(list); }
public async Task DeleteGroup(PermissionsGroup group) { DbService.PermissionGroups.Remove(group); await DbService.SaveChangesAsync().ConfigureAwait(false); }