#1659 Made the option to ignore notifcations for auto approve

pull/1808/head
Jamie 7 years ago
parent 183f3593df
commit 8d5dfe9424

@ -9,6 +9,8 @@ install:
- ps: Install-Product node $env:nodejs_version
build_script:
- ps: ./build.ps1 --settings_skipverification=true
test: off
after_build:
- cmd: >-

@ -0,0 +1,13 @@
{
"folders": [
{
"path": "C:\\Users\\Jamie.Rees\\Source\\Repos\\test2\\ombi\\src"
}
],
"settings": {
"files.associations": {
"dockerfile.*": "dockerfile"
},
"typescript.tsdk": "node_modules\\typescript\\lib"
}
}

@ -0,0 +1,10 @@
{
"folders": [
{
"path": "C:\\Users\\Jamie.Rees\\Source\\Repos\\test2\\ombi\\src\\Ombi"
}
],
"settings": {
"typescript.tsdk": "node_modules\\typescript\\lib"
}
}

@ -2,7 +2,9 @@
using Microsoft.EntityFrameworkCore;
using Ombi.Core.Authentication;
using Ombi.Core.Rule.Interfaces;
using Ombi.Core.Settings;
using Ombi.Helpers;
using Ombi.Settings.Settings.Models;
using Ombi.Store.Entities;
using Ombi.Store.Entities.Requests;
@ -10,33 +12,42 @@ namespace Ombi.Core.Rule.Rules.Specific
{
public class SendNotificationRule : SpecificRule, ISpecificRule<object>
{
public SendNotificationRule(OmbiUserManager um)
public SendNotificationRule(OmbiUserManager um, ISettingsService<OmbiSettings> settings)
{
UserManager = um;
Settings = settings;
}
public override SpecificRules Rule => SpecificRules.CanSendNotification;
private OmbiUserManager UserManager { get; }
private ISettingsService<OmbiSettings> Settings { get; }
public async Task<RuleResult> Execute(object obj)
{
var req = (BaseRequest)obj;
var sendNotification = !req.Approved; /*|| !prSettings.IgnoreNotifyForAutoApprovedRequests;*/
var settings = await Settings.GetSettingsAsync();
var sendNotification = true;
var requestedUser = await UserManager.Users.FirstOrDefaultAsync(x => x.Id == req.RequestedUserId);
if (req.RequestType == RequestType.Movie)
{
sendNotification = !await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.AutoApproveMovie);
if (settings.DoNotSendNotificationsForAutoApprove)
{
sendNotification = !await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.AutoApproveMovie);
}
}
else if(req.RequestType == RequestType.TvShow)
else if (req.RequestType == RequestType.TvShow)
{
sendNotification = !await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.AutoApproveTv);
if (settings.DoNotSendNotificationsForAutoApprove)
{
sendNotification = !await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.AutoApproveTv);
}
}
if (await UserManager.IsInRoleAsync(requestedUser, OmbiRoles.Admin))
{
sendNotification = false; // Don't bother sending a notification if the user is an admin
}
return new RuleResult
{

@ -7,6 +7,7 @@
public bool Wizard { get; set; }
public string ApiKey { get; set; }
public bool IgnoreCertificateErrors { get; set; }
public bool DoNotSendNotificationsForAutoApprove {get;set;}
}
}

@ -13,6 +13,7 @@ export interface IOmbiSettings extends ISettings {
wizard: boolean;
apiKey: string;
ignoreCertificateErrors: boolean;
doNotSendNotificationsForAutoApprove: boolean;
}
export interface IUpdateSettings extends ISettings {

@ -45,6 +45,14 @@
</div>
</div>
<br/>
<div class="form-group">
<div class="checkbox">
<input type="checkbox" id="doNotSendNotificationsForAutoApprove" name="doNotSendNotificationsForAutoApprove" formControlName="doNotSendNotificationsForAutoApprove">
<label for="doNotSendNotificationsForAutoApprove">Do not send Notifications if a User has the Auto Approve permission</label>
</div>
</div>
<div class="form-group">
<div class="checkbox">
<input type="checkbox" id="ignoreCertificateErrors" name="ignoreCertificateErrors" formControlName="ignoreCertificateErrors">

@ -22,6 +22,7 @@ export class OmbiComponent implements OnInit {
apiKey: [x.apiKey],
ignoreCertificateErrors: [x.ignoreCertificateErrors],
baseUrl: [x.baseUrl],
doNotSendNotificationsForAutoApprove: [x.doNotSendNotificationsForAutoApprove],
});
});
}

Loading…
Cancel
Save