Skip to content

Commit

Permalink
feat(request-limits): ✨ Added the new request limit options into the …
Browse files Browse the repository at this point in the history
…user importer
  • Loading branch information
tidusjar committed Oct 20, 2021
1 parent 03bc23a commit 01d4f4d
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 9 deletions.
4 changes: 4 additions & 0 deletions src/Ombi.Schedule/Jobs/Emby/EmbyUserImporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,11 @@ await _notification.Clients.Clients(NotificationHub.AdminConnectionIds)
ProviderUserId = embyUser.Id,
Alias = isConnectUser ? embyUser.Name : string.Empty,
MovieRequestLimit = userManagementSettings.MovieRequestLimit,
MovieRequestLimitType = userManagementSettings.MovieRequestLimitType,
EpisodeRequestLimit = userManagementSettings.EpisodeRequestLimit,
EpisodeRequestLimitType = userManagementSettings.EpisodeRequestLimitType,
MusicRequestLimit = userManagementSettings.MusicRequestLimit,
MusicRequestLimitType = userManagementSettings.MusicRequestLimitType,
StreamingCountry = userManagementSettings.DefaultStreamingCountry
};
var result = await _userManager.CreateAsync(newUser);
Expand Down
4 changes: 4 additions & 0 deletions src/Ombi.Schedule/Jobs/Plex/PlexUserImporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ await _notification.Clients.Clients(NotificationHub.AdminConnectionIds)
Email = plexUser?.Email ?? string.Empty,
Alias = string.Empty,
MovieRequestLimit = userManagementSettings.MovieRequestLimit,
MovieRequestLimitType = userManagementSettings.MovieRequestLimitType,
EpisodeRequestLimit = userManagementSettings.EpisodeRequestLimit,
EpisodeRequestLimitType = userManagementSettings.EpisodeRequestLimitType,
MusicRequestLimit = userManagementSettings.MusicRequestLimit,
MusicRequestLimitType = userManagementSettings.MusicRequestLimitType,
StreamingCountry = userManagementSettings.DefaultStreamingCountry
};
_log.LogInformation("Creating Plex user {0}", newUser.UserName);
Expand Down
7 changes: 6 additions & 1 deletion src/Ombi.Settings/Settings/Models/UserManagementSettings.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Ombi.Store.Entities;
using System.Collections.Generic;

namespace Ombi.Settings.Settings.Models
{
Expand All @@ -9,7 +10,11 @@ public class UserManagementSettings : Settings
public bool ImportEmbyUsers { get; set; }
public bool ImportJellyfinUsers { get; set; }
public int MovieRequestLimit { get; set; }
public RequestLimitType MovieRequestLimitType { get; set; } = RequestLimitType.Week;
public int EpisodeRequestLimit { get; set; }
public RequestLimitType EpisodeRequestLimitType { get; set; } = RequestLimitType.Week;
public int MusicRequestLimit { get; set; }
public RequestLimitType MusicRequestLimitType { get; set; } = RequestLimitType.Week;
public string DefaultStreamingCountry { get; set; } = "US";
public List<string> DefaultRoles { get; set; } = new List<string>();
public List<string> BannedPlexUserIds { get; set; } = new List<string>();
Expand Down
5 changes: 5 additions & 0 deletions src/Ombi/ClientApp/src/app/interfaces/ISettings.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ISettings } from "./ICommon";
import { RequestLimitType } from ".";

export interface IExternalSettings extends ISettings {
ssl: boolean;
Expand Down Expand Up @@ -247,10 +248,14 @@ export interface IUserManagementSettings extends ISettings {
defaultRoles: string[];
movieRequestLimit: number;
episodeRequestLimit: number;
musicRequestLimit: number;
bannedPlexUserIds: string[];
bannedEmbyUserIds: string[];
bannedJellyfinUserIds: string[];
defaultStreamingCountry: string;
movieRequestLimitType: RequestLimitType;
episodeRequestLimitType: RequestLimitType;
musicRequestLimitType: RequestLimitType;
}

export interface IAbout {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,18 @@
<div class="form-group">
<mat-slide-toggle id="importJellyfinUsers" [(ngModel)]="settings.importJellyfinUsers">Import Jellyfin Users</mat-slide-toggle>
</div>

<div *ngIf="jellyfinUsers">
<p>Jellyfin Users excluded from Import</p>

<p-autoComplete [(ngModel)]="bannedJellyfinUsers" [suggestions]="filteredJellyfinUsers" [multiple]="true" field="username" (completeMethod)="filterJellyfinList($event)"></p-autoComplete>
</div>

</div>
</div>
<div class="col-md-6">
<h4>Default Roles</h4>

<h3>Default Roles</h3>
<hr>
<div *ngFor="let c of claims">
<div class="form-group">
<div>
Expand All @@ -60,20 +60,49 @@ <h4>Default Roles</h4>
</div>
</div>

<h4>Default Request Limits</h4>
<h3>Default Request Limits</h3>

<hr>

<div class="form-group">
<label for="movieRequestLimit" class="control-label">Movie Request Limit</label>
<div>
<input type="text" [(ngModel)]="settings.movieRequestLimit" class="form-control form-small form-control-custom" id="movieRequestLimit" name="movieRequestLimit" value="{{settings?.movieRequestLimit}}">
</div>
</div>

<mat-label>Movie Request Limit Type</mat-label>
<mat-select id="movieRequestLimitType" [(value)]="settings.movieRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>

<div class="form-group">
<label for="episodeRequestLimit" class="control-label">Episode Request Limit</label>
<div>
<input type="text" [(ngModel)]="settings.episodeRequestLimit" class="form-control form-small form-control-custom" id="episodeRequestLimit" name="episodeRequestLimit" value="{{settings?.episodeRequestLimit}}">
</div>

</div>
<mat-label>Episode Request Limit Type</mat-label>
<mat-select id="episodeRequestLimitType" [(value)]="settings.episodeRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
<div class="form-group">
<label for="episodeRequestLimit" class="control-label">Music Request Limit</label>
<div>
<input type="text" [(ngModel)]="settings.musicRequestLimit" class="form-control form-small form-control-custom" id="musicRequestLimit" name="musicRequestLimit" value="{{settings?.musicRequestLimit}}">
</div>
</div>
<mat-label>Music Request Limit Type</mat-label>
<mat-select id="musicRequestLimitType" [(value)]="settings.musicRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>

<mat-form-field>
<mat-label [translate]="'UserPreferences.StreamingCountry'"></mat-label>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Component, OnInit } from "@angular/core";
import { EmbyService, IdentityService, JellyfinService, JobService, NotificationService, PlexService, SettingsService } from "../../services";
import { ICheckbox, IUserManagementSettings, RequestLimitType } from "../../interfaces";

import { ICheckbox, IUserManagementSettings } from "../../interfaces";
import { IUsersModel } from "../../interfaces";
import { EmbyService, JellyfinService, IdentityService, JobService, NotificationService, PlexService, SettingsService } from "../../services";

@Component({
templateUrl: "./usermanagement.component.html",
Expand Down Expand Up @@ -31,6 +31,9 @@ export class UserManagementComponent implements OnInit {
public enableImportButton = false;
public countries: string[];

public requestLimitTypes: RequestLimitType[] = [RequestLimitType.Day, RequestLimitType.Week, RequestLimitType.Month];
public RequestLimitType = RequestLimitType;

constructor(private readonly settingsService: SettingsService,
private readonly notificationService: NotificationService,
private readonly identityService: IdentityService,
Expand Down Expand Up @@ -120,7 +123,7 @@ export class UserManagementComponent implements OnInit {
if (x === true) {
this.notificationService.success("Successfully saved the User Management Settings");
} else {
this.notificationService.success( "There was an error when saving the Ombi settings");
this.notificationService.success( "There was an error when saving the settings");
}
});
}
Expand Down

0 comments on commit 01d4f4d

Please sign in to comment.