Update backend to support SodistoreMax sessions
This commit is contained in:
parent
cf9c96377f
commit
2cb15d6478
|
|
@ -143,7 +143,9 @@ public static class ExoCmd
|
|||
{
|
||||
const String url = "https://api-ch-dk-2.exoscale.com/v2/iam-role";
|
||||
const String method = "iam-role";
|
||||
String rolename = installation.Product==(int)ProductType.Salimax?Db.Installations.Count(f => f.Product == (int)ProductType.Salimax) + installation.Name:Db.Installations.Count(f => f.Product == (int)ProductType.Salidomo) + installation.Name;
|
||||
String rolename = installation.Product==(int)ProductType.Salimax?Db.Installations.Count(f => f.Product == (int)ProductType.Salimax) + installation.Name:
|
||||
installation.Product==(int)ProductType.SodiStoreMax?Db.Installations.Count(f => f.Product == (int)ProductType.SodiStoreMax) + installation.Name:
|
||||
Db.Installations.Count(f => f.Product == (int)ProductType.Salidomo) + installation.Name;
|
||||
|
||||
|
||||
var contentString = $$"""
|
||||
|
|
@ -316,7 +318,9 @@ public static class ExoCmd
|
|||
{
|
||||
const String url = "https://api-ch-dk-2.exoscale.com/v2/iam-role";
|
||||
const String method = "iam-role";
|
||||
String rolename = installation.Product==(int)ProductType.Salimax?Db.Installations.Count(f => f.Product == (int)ProductType.Salimax) + installation.Name:Db.Installations.Count(f => f.Product == (int)ProductType.Salidomo) + installation.Name;
|
||||
String rolename = installation.Product==(int)ProductType.Salimax?Db.Installations.Count(f => f.Product == (int)ProductType.Salimax) + installation.Name:
|
||||
installation.Product==(int)ProductType.SodiStoreMax?Db.Installations.Count(f => f.Product == (int)ProductType.SodiStoreMax) + installation.Name:
|
||||
Db.Installations.Count(f => f.Product == (int)ProductType.Salidomo) + installation.Name;
|
||||
|
||||
var contentString = $$"""
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public static class InstallationMethods
|
|||
|
||||
public static String BucketName(this Installation installation)
|
||||
{
|
||||
if (installation.Product == (int)ProductType.Salimax)
|
||||
if (installation.Product == (int)ProductType.Salimax || installation.Product == (int)ProductType.SodiStoreMax)
|
||||
{
|
||||
return $"{installation.S3BucketId}-{BucketNameSalt}";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -223,6 +223,18 @@ public static class SessionMethods
|
|||
|
||||
}
|
||||
|
||||
if (installation.Product == (int)ProductType.SodiStoreMax)
|
||||
{
|
||||
return user is not null
|
||||
&& user.UserType != 0
|
||||
&& user.HasAccessToParentOf(installation)
|
||||
&& Db.Create(installation) // TODO: these two in a transaction
|
||||
&& Db.Create(new InstallationAccess { UserId = user.Id, InstallationId = installation.Id })
|
||||
&& await installation.CreateBucket()
|
||||
&& await installation.RenewS3Credentials();
|
||||
|
||||
}
|
||||
|
||||
if (installation.Product == (int)ProductType.Salidomo)
|
||||
{
|
||||
return user is not null
|
||||
|
|
@ -266,6 +278,19 @@ public static class SessionMethods
|
|||
.WithParentOf(original) // prevent moving
|
||||
.Apply(Db.Update);
|
||||
}
|
||||
|
||||
if (installation.Product == (int)ProductType.SodiStoreMax)
|
||||
{
|
||||
|
||||
return user is not null
|
||||
&& installation is not null
|
||||
&& original is not null
|
||||
&& user.UserType !=0
|
||||
&& user.HasAccessTo(installation)
|
||||
&& installation
|
||||
.WithParentOf(original) // prevent moving
|
||||
.Apply(Db.Update);
|
||||
}
|
||||
|
||||
|
||||
return user is not null
|
||||
|
|
@ -287,7 +312,7 @@ public static class SessionMethods
|
|||
&& installation is not null
|
||||
&& user.UserType != 0)
|
||||
{
|
||||
if (installation.Product is (int)ProductType.Salimax or (int)ProductType.Salidomo)
|
||||
if (installation.Product is (int)ProductType.Salimax or (int)ProductType.Salidomo || installation.Product == (int)ProductType.SodiStoreMax)
|
||||
{
|
||||
return
|
||||
Db.Delete(installation)
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ public class Session : Relation<String, Int64>
|
|||
[Indexed] public DateTime LastSeen { get; set; }
|
||||
public Boolean AccessToSalimax { get; set; } = false;
|
||||
public Boolean AccessToSalidomo { get; set; } = false;
|
||||
public Boolean AccessToSodistoreMax { get; set; } = false;
|
||||
public Boolean AccessToSodioHome { get; set; } = false;
|
||||
[Ignore] public Boolean Valid => DateTime.Now - LastSeen <=MaxAge ;
|
||||
|
||||
|
|
@ -46,6 +47,7 @@ public class Session : Relation<String, Int64>
|
|||
LastSeen = DateTime.Now;
|
||||
AccessToSalimax = user.AccessibleInstallations(product: (int)ProductType.Salimax).ToList().Count > 0;
|
||||
AccessToSalidomo = user.AccessibleInstallations(product: (int)ProductType.Salidomo).ToList().Count > 0;
|
||||
AccessToSodistoreMax = user.AccessibleInstallations(product: (int)ProductType.SodiStoreMax).ToList().Count > 0;
|
||||
AccessToSodioHome = user.AccessibleInstallations(product: (int)ProductType.SodioHome).ToList().Count > 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,6 +95,11 @@ public static class RabbitMqManager
|
|||
monitorLink =
|
||||
$"https://monitor.innov.energy/installations/list/installation/{installation.S3BucketId}/batteryview";
|
||||
}
|
||||
else if (installation.Product == (int)ProductType.SodiStoreMax)
|
||||
{
|
||||
monitorLink =
|
||||
$"https://monitor.innov.energy/sodistore_installations/list/installation/{installation.S3BucketId}/batteryview";
|
||||
}
|
||||
else
|
||||
{
|
||||
monitorLink =
|
||||
|
|
|
|||
Loading…
Reference in New Issue