Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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()
         });
     }
 }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
 public async Task DeleteGroup(PermissionsGroup group)
 {
     DbService.PermissionGroups.Remove(group);
     await DbService.SaveChangesAsync().ConfigureAwait(false);
 }