This commit is contained in:
@@ -21,12 +21,14 @@
|
|||||||
BACKEND TODO / SYSTEM FOR RAVEN
|
BACKEND TODO / SYSTEM FOR RAVEN
|
||||||
|
|
||||||
|
|
||||||
TODO: need a utility that can hash any adhoc collection of fields to work with various notify related objects
|
TODO: check before any thing that might create a dupe
|
||||||
(NOT RELIABLE UNFORTUNATELY, JUST CHECK MULTIPLE FIELDS INSTEAD)
|
todo: have removed the old v7 SMTP retry deliveries for simplification
|
||||||
TODO: Never creates a duplicate APP or EMAIL notify, so checks in history log before sending
|
instead, it will now act as if this is always set to true
|
||||||
TODO: HASH (NOT RELIABLE UNFORTUNATELY, JUST CHECK MULTIPLE FIELDS INSTEAD) uniquely identifies a notification delivery and it's logged with the history so before a new delivery is sent it's compared to the delivery log and if it was sent
|
Probe email server first if can't contact then skip smtp delivers (same as v7 when this setting true)
|
||||||
in the last 90 days then it skips it. This will avoid duplicated emails or runaway notifies etc.
|
New: will make every effort to err on the side of assuming delivery happened in any issue during delivery
|
||||||
Hash needs to be unique to the destination user, teh source object and the event type exactly, if there is any difference then it should not hash the same
|
This will be one way to ensure it doesn't pile on the emails because of some spurious issue that actually delivered but it seemed like it might not have
|
||||||
|
User will be able to go into notifyevent table adn remove any items they don't want delivered in case of issue
|
||||||
|
|
||||||
TODO: import v7 needs to create users for each contact and set their default for deliveries of notifications based on old region and send notification setting
|
TODO: import v7 needs to create users for each contact and set their default for deliveries of notifications based on old region and send notification setting
|
||||||
Make a case for this and or implement it with this work so it doesn't get lost
|
Make a case for this and or implement it with this work so it doesn't get lost
|
||||||
|
|
||||||
|
|||||||
21
server/AyaNova/biz/NotifyMailSecurity.cs
Normal file
21
server/AyaNova/biz/NotifyMailSecurity.cs
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
namespace AyaNova.Biz
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// All AyaNova smtp notification connection security
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public enum NotifyMailSecurity : int
|
||||||
|
{
|
||||||
|
|
||||||
|
None = 0,
|
||||||
|
StartTls = 1,
|
||||||
|
SSLTLS=3
|
||||||
|
|
||||||
|
//NEW ITEMS REQUIRE translation KEYS
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}//eons
|
||||||
22
server/AyaNova/models/GlobalOpsNotificationSettings.cs
Normal file
22
server/AyaNova/models/GlobalOpsNotificationSettings.cs
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
using System;
|
||||||
|
using AyaNova.Biz;
|
||||||
|
namespace AyaNova.Models
|
||||||
|
{
|
||||||
|
|
||||||
|
public class GlobalOpsNotificationSettings
|
||||||
|
{
|
||||||
|
public long Id { get; set; }//this is always 1 as there is only ever one single global Ops object
|
||||||
|
public uint Concurrency { get; set; }
|
||||||
|
public bool Active { get; set; }
|
||||||
|
public string SmtpServerAddress { get; set; }
|
||||||
|
public string SmtpAccount { get; set; }
|
||||||
|
public string SmtpPassword { get; set; }
|
||||||
|
public NotifyMailSecurity ConnectionSecurity { get; set; }
|
||||||
|
public int SmtpServerPort { get; set; }
|
||||||
|
public string NotifyFromAddress { get; set; }
|
||||||
|
public GlobalOpsNotificationSettings()
|
||||||
|
{
|
||||||
|
Active = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -236,6 +236,9 @@ namespace AyaNova.Util
|
|||||||
await ExecQueryAsync("CREATE TABLE aglobalopsbackupsettings (id integer NOT NULL PRIMARY KEY, active bool not null, " +
|
await ExecQueryAsync("CREATE TABLE aglobalopsbackupsettings (id integer NOT NULL PRIMARY KEY, active bool not null, " +
|
||||||
"backuptime timestamp, backupsetstokeep int, backupattachments bool)");
|
"backuptime timestamp, backupsetstokeep int, backupattachments bool)");
|
||||||
|
|
||||||
|
await ExecQueryAsync("CREATE TABLE aglobalopsnotificationsettings (id integer NOT NULL PRIMARY KEY, active bool not null, " +
|
||||||
|
"backuptime timestamp, backupsetstokeep int, backupattachments bool)");
|
||||||
|
|
||||||
//create aevent biz event log table
|
//create aevent biz event log table
|
||||||
await ExecQueryAsync("CREATE TABLE aevent (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, created timestamp not null, userid bigint not null," +
|
await ExecQueryAsync("CREATE TABLE aevent (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, created timestamp not null, userid bigint not null," +
|
||||||
"ayid bigint not null, ayatype integer not null, ayevent integer not null, textra varchar(255))");
|
"ayid bigint not null, ayatype integer not null, ayevent integer not null, textra varchar(255))");
|
||||||
|
|||||||
Reference in New Issue
Block a user