mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-21 05:43:19 -07:00
#1519 !wip fixed the user management settings
This commit is contained in:
parent
97d63f13d3
commit
fab5dd413a
7 changed files with 37 additions and 14 deletions
|
@ -9,4 +9,4 @@ export * from "./search.service";
|
|||
export * from "./service.helpers";
|
||||
export * from "./settings.service";
|
||||
export * from "./status.service";
|
||||
export * from "./update.service";
|
||||
export * from "./job.service";
|
||||
|
|
|
@ -5,7 +5,7 @@ import { Observable } from "rxjs/Rx";
|
|||
import { ServiceAuthHelpers } from "./service.helpers";
|
||||
|
||||
@Injectable()
|
||||
export class UpdateService extends ServiceAuthHelpers {
|
||||
export class JobService extends ServiceAuthHelpers {
|
||||
constructor(http: AuthHttp) {
|
||||
super(http, "/api/v1/Job/");
|
||||
}
|
||||
|
@ -16,4 +16,8 @@ export class UpdateService extends ServiceAuthHelpers {
|
|||
public checkForNewUpdate(): Observable<boolean> {
|
||||
return this.http.get(`${this.url}update/`).map(this.extractData);
|
||||
}
|
||||
|
||||
public runPlexImporter(): Observable<boolean> {
|
||||
return this.http.post(`${this.url}plexUserImporter/`, { headers: this.headers }).map(this.extractData);
|
||||
}
|
||||
}
|
|
@ -8,7 +8,7 @@ import { ClipboardModule } from "ngx-clipboard/dist";
|
|||
import { AuthGuard } from "../auth/auth.guard";
|
||||
import { AuthModule } from "../auth/auth.module";
|
||||
import { AuthService } from "../auth/auth.service";
|
||||
import { RadarrService, SonarrService, TesterService, UpdateService, ValidationService } from "../services";
|
||||
import { JobService, RadarrService, SonarrService, TesterService, ValidationService } from "../services";
|
||||
|
||||
import { PipeModule } from "../pipes/pipe.module";
|
||||
import { AboutComponent } from "./about/about.component";
|
||||
|
@ -100,7 +100,7 @@ const routes: Routes = [
|
|||
AuthGuard,
|
||||
ValidationService,
|
||||
TesterService,
|
||||
UpdateService,
|
||||
JobService,
|
||||
],
|
||||
|
||||
})
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import { FormBuilder, FormGroup } from "@angular/forms";
|
||||
|
||||
import { NotificationService } from "../../services";
|
||||
import { SettingsService, UpdateService } from "../../services";
|
||||
import { JobService, SettingsService } from "../../services";
|
||||
|
||||
@Component({
|
||||
templateUrl: "./update.component.html",
|
||||
|
@ -14,7 +14,7 @@ export class UpdateComponent implements OnInit {
|
|||
|
||||
constructor(private settingsService: SettingsService,
|
||||
private notificationService: NotificationService,
|
||||
private updateService: UpdateService,
|
||||
private updateService: JobService,
|
||||
private fb: FormBuilder) { }
|
||||
|
||||
public ngOnInit() {
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="importPlex" [(ngModel)]="importPlexUsers">
|
||||
<label for="importPlexUsers">Import Plex Users</label>
|
||||
<input type="checkbox" id="importPlex" [(ngModel)]="settings.importPlexUsers">
|
||||
<label for="importPlex">Import Plex Users</label>
|
||||
</div>
|
||||
</div>
|
||||
<div *ngIf="plexUsers">
|
||||
<p>Plex Users exclude from Import</p>
|
||||
|
||||
<p-autoComplete [(ngModel)]="bannedPlexUsers" [suggestions]="filteredPlexUsers" [multiple]="true" field="username" (completeMethod)="filterCountryMultiple($event)"></p-autoComplete>
|
||||
<p-autoComplete [(ngModel)]="bannedPlexUsers" [suggestions]="filteredPlexUsers" [multiple]="true" field="username" (completeMethod)="filterUserList($event)"></p-autoComplete>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" id="importEmbyUsers" [(ngModel)]="importEmbyUsers">
|
||||
<input type="checkbox" id="importEmbyUsers" [(ngModel)]="settings.importPlexUsers">
|
||||
<label for="importEmbyUsers">Import Emby Users</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -46,6 +46,9 @@
|
|||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<button type="submit" id="save" (click)="submit()" class="btn btn-primary-outline">Submit</button>
|
||||
<button type="button" (click)="runImporter()" class="btn btn-info-outline">Run Importer</button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import { ICheckbox, IUserManagementSettings } from "../../interfaces";
|
||||
import { IPlexFriends } from "../../interfaces/IPlex";
|
||||
import { IdentityService, NotificationService, PlexService, SettingsService } from "../../services";
|
||||
import { IdentityService, JobService, NotificationService, PlexService, SettingsService } from "../../services";
|
||||
|
||||
@Component({
|
||||
templateUrl: "./usermanagement.component.html",
|
||||
|
@ -21,7 +21,8 @@ export class UserManagementComponent implements OnInit {
|
|||
constructor(private settingsService: SettingsService,
|
||||
private notificationService: NotificationService,
|
||||
private identityService: IdentityService,
|
||||
private plexService: PlexService) {
|
||||
private plexService: PlexService,
|
||||
private jobService: JobService) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -64,6 +65,7 @@ export class UserManagementComponent implements OnInit {
|
|||
});
|
||||
this.settings.defaultRoles = enabledClaims.map((claim) => claim.value);
|
||||
this.settings.bannedPlexUserIds = this.bannedPlexUsers.map((u) => u.id);
|
||||
|
||||
this.settingsService.saveUserManagementSettings(this.settings).subscribe(x => {
|
||||
if (x === true) {
|
||||
this.notificationService.success("Saved", "Successfully saved the User Management Settings");
|
||||
|
@ -73,10 +75,14 @@ export class UserManagementComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
|
||||
public filterCountryMultiple(event: any) {
|
||||
public filterUserList(event: any) {
|
||||
this.filteredPlexUsers = this.filter(event.query, this.plexUsers);
|
||||
}
|
||||
|
||||
public runImporter(): void {
|
||||
this.jobService.runPlexImporter().subscribe();
|
||||
}
|
||||
|
||||
private filter(query: string, users: IPlexFriends[]): IPlexFriends[] {
|
||||
return users.filter((val) => {
|
||||
return val.username.toLowerCase().indexOf(query.toLowerCase()) === 0;
|
||||
|
|
|
@ -3,6 +3,7 @@ using Hangfire;
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using Ombi.Api.Service;
|
||||
using Ombi.Attributes;
|
||||
using Ombi.Schedule.Jobs.Plex;
|
||||
using Ombi.Schedule.Ombi;
|
||||
|
||||
namespace Ombi.Controllers
|
||||
|
@ -12,12 +13,14 @@ namespace Ombi.Controllers
|
|||
[Produces("application/json")]
|
||||
public class JobController : Controller
|
||||
{
|
||||
public JobController(IOmbiAutomaticUpdater updater)
|
||||
public JobController(IOmbiAutomaticUpdater updater, IPlexUserImporter userImporter)
|
||||
{
|
||||
_updater = updater;
|
||||
_plexUserImporter = userImporter;
|
||||
}
|
||||
|
||||
private readonly IOmbiAutomaticUpdater _updater;
|
||||
private readonly IPlexUserImporter _plexUserImporter;
|
||||
|
||||
[HttpPost("update")]
|
||||
public bool ForceUpdate()
|
||||
|
@ -36,5 +39,12 @@ namespace Ombi.Controllers
|
|||
|
||||
return updateAvailable;
|
||||
}
|
||||
|
||||
[HttpPost("plexuserimporter")]
|
||||
public bool PlexUserImporter()
|
||||
{
|
||||
BackgroundJob.Enqueue(() => _plexUserImporter.Start());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue