aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-09-24 22:28:15 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-09-24 22:28:15 +0300
commit09b1dd03e5d67453e673789fe0826e7a25d881ab (patch)
treece45826edbdb28a370a0a2b4e96a530a4e557ffb /Software/Visual_Studio/PPC
parentfddc07eece13c6676078e17b7e925ef70c6e70cb (diff)
downloadTango-09b1dd03e5d67453e673789fe0826e7a25d881ab.tar.gz
Tango-09b1dd03e5d67453e673789fe0826e7a25d881ab.zip
Allow null user on jobs.
Dropped use of any user on PPC.
Diffstat (limited to 'Software/Visual_Studio/PPC')
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Authentication/IAuthenticationProvider.cs11
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs6
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Synchronization/DefaultMachineDataSynchronizer.cs4
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Authentication/DefaultAuthenticationProvider.cs18
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs6
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj2
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoadingViewVM.cs67
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs8
11 files changed, 89 insertions, 43 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
index c41a9ef5d..164867afe 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobsViewVM.cs
@@ -518,7 +518,7 @@ namespace Tango.PPC.Jobs.ViewModels
job.ColorSpaceGuid = Adapter.ColorSpaces.FirstOrDefault(x => x.Code == vm.SelectedColorSpace.ToInt32()).Guid;
job.ColorSpace = _colorSpaces.SingleOrDefault(x => x.Guid == job.ColorSpaceGuid);
job.MachineGuid = MachineProvider.Machine.Guid;
- job.UserGuid = AuthenticationProvider.CurrentUser.Guid;
+ job.UserGuid = null;
job.RmlGuid = Settings.DefaultRmlGuid != null ? Settings.DefaultRmlGuid : _rmls.FirstOrDefault().Guid;
job.WindingMethodGuid = Adapter.WindingMethods.FirstOrDefault().Guid;
job.SpoolTypeGuid = Settings.DefaultSpoolTypeGuid != null ? Settings.DefaultSpoolTypeGuid : Adapter.SpoolTypes.FirstOrDefault().Guid;
@@ -843,7 +843,7 @@ namespace Tango.PPC.Jobs.ViewModels
try
{
JobFile jFile = JobFile.Parser.ParseFrom(File.ReadAllBytes(jobFile.Path));
- var job = await Job.FromJobFile(jFile, MachineProvider.Machine.Guid, AuthenticationProvider.CurrentUser.Guid);
+ var job = await Job.FromJobFile(jFile, MachineProvider.Machine.Guid, null);
job.JobSource = JobSource.Local;
jobContext.Jobs.Add(job);
await jobContext.SaveChangesAsync();
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Authentication/IAuthenticationProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Authentication/IAuthenticationProvider.cs
index 33761c8d6..ca927e6df 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Authentication/IAuthenticationProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Authentication/IAuthenticationProvider.cs
@@ -23,6 +23,11 @@ namespace Tango.PPC.Common.Authentication
User CurrentUser { get; }
/// <summary>
+ /// Gets a value indicating whether the authentication provider is using a null user.
+ /// </summary>
+ bool AuthenticationRequired { get; }
+
+ /// <summary>
/// Performs a user login by the specified email and password.
/// </summary>
/// <param name="email">The email.</param>
@@ -32,6 +37,12 @@ namespace Tango.PPC.Common.Authentication
Task<User> Login(String email, String password, bool encrypt = true);
/// <summary>
+ /// Performs a fake login when no authentication is used.
+ /// </summary>
+ /// <returns></returns>
+ Task Login();
+
+ /// <summary>
/// Logs-out the current logged-in user.
/// </summary>
void LogOut();
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs
index 087534d48..d32df734d 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs
@@ -368,7 +368,7 @@ namespace Tango.PPC.Common.BackupRestore
{
LogManager.Log("Job already exist, overwriting...");
- var newJob = Job.FromJobFile(jobFile, _machineProvider.Machine.Guid, _authenticationProvider.CurrentUser.Guid).Result;
+ var newJob = Job.FromJobFile(jobFile, _machineProvider.Machine.Guid, null).Result;
newJob.Guid = existingJob.Guid;
existingJob.Delete(db);
@@ -386,7 +386,7 @@ namespace Tango.PPC.Common.BackupRestore
}
else
{
- var newJob = Job.FromJobFile(jobFile, _machineProvider.Machine.Guid, _authenticationProvider.CurrentUser.Guid).Result;
+ var newJob = Job.FromJobFile(jobFile, _machineProvider.Machine.Guid, null).Result;
db.Jobs.Add(newJob);
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
index 970532d43..e9bcd4246 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs
@@ -261,7 +261,7 @@ namespace Tango.PPC.Common.EventLogging
machineEvent.HostName = _hostName;
machineEvent.EventType = _eventTypesGuids[machineEvent.Type];
- if (_machine == null || _authentication.CurrentUser == null)
+ if (_machine == null)
{
_pendingEvents.Add(machineEvent);
}
@@ -280,8 +280,8 @@ namespace Tango.PPC.Common.EventLogging
LogManager.Log("Logging event " + machineEvent.EventType.Name);
machineEvent.MachineGuid = _machine.Guid;
- machineEvent.UserGuid = _authentication.CurrentUser.Guid;
- machineEvent.User = _authentication.CurrentUser;
+ machineEvent.UserGuid = null;
+ machineEvent.User = null;
_events.Enqueue(machineEvent);
if (!_currentEvents.Exists(x => x.Type == machineEvent.Type))
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Synchronization/DefaultMachineDataSynchronizer.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Synchronization/DefaultMachineDataSynchronizer.cs
index 53e41062f..ab1f8e890 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Synchronization/DefaultMachineDataSynchronizer.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Synchronization/DefaultMachineDataSynchronizer.cs
@@ -315,7 +315,7 @@ namespace Tango.PPC.Common.Synchronization
var job = dto.ToObservable();
job.ID = 0;
- job.UserGuid = _authenticationProvider.CurrentUser.Guid;
+ job.UserGuid = null;
job.CustomerGuid = null;
job.IsSynchronized = true;
@@ -385,7 +385,7 @@ namespace Tango.PPC.Common.Synchronization
{
var ev = dto.ToObservable();
ev.ID = 0;
- ev.UserGuid = _authenticationProvider.CurrentUser.Guid;
+ ev.UserGuid = null;
ev.IsSynchronized = true;
if (await db.MachinesEvents.SingleOrDefaultAsync(x => x.Guid == ev.Guid) == null)
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
index 14666f16a..87b322f04 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj
@@ -489,7 +489,7 @@
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Authentication/DefaultAuthenticationProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Authentication/DefaultAuthenticationProvider.cs
index 04e968da2..e7be61b0a 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Authentication/DefaultAuthenticationProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Authentication/DefaultAuthenticationProvider.cs
@@ -46,6 +46,11 @@ namespace Tango.PPC.UI.Authentication
}
/// <summary>
+ /// Gets a value indicating whether the authentication provider is using a null user.
+ /// </summary>
+ public bool AuthenticationRequired { get; private set; }
+
+ /// <summary>
/// Performs a user login by the specified email and password.
/// </summary>
/// <param name="email">The email.</param>
@@ -56,6 +61,9 @@ namespace Tango.PPC.UI.Authentication
{
return Task.Factory.StartNew<User>(() =>
{
+
+ AuthenticationRequired = true;
+
String hash = encrypt ? User.GetPasswordHash(password) : password;
LogManager.Log($"Logging in user {email}...");
@@ -82,6 +90,16 @@ namespace Tango.PPC.UI.Authentication
});
}
+ public Task Login()
+ {
+ return Task.Factory.StartNew(() =>
+ {
+ AuthenticationRequired = false;
+ CurrentUser = null;
+ CurrentUserChanged?.Invoke(this, CurrentUser);
+ });
+ }
+
/// <summary>
/// Logs-out the current logged-in user.
/// </summary>
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
index 375b648d0..bbabed225 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Modules/DefaultPPCModuleLoader.cs
@@ -131,10 +131,14 @@ namespace Tango.PPC.UI.Modules
UserModules.Clear();
- if (_authenticationProvider.CurrentUser != null)
+ if (_authenticationProvider.AuthenticationRequired && _authenticationProvider.CurrentUser != null)
{
UserModules = AllModules.Where(x => _authenticationProvider.CurrentUser.HasPermission(x.Permission)).ToObservableCollection();
}
+ else if (!_authenticationProvider.AuthenticationRequired)
+ {
+ UserModules = AllModules.ToObservableCollection();
+ }
ModulesLoaded?.Invoke(this, new EventArgs());
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
index 6b6934ce5..c214d73ae 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Tango.PPC.UI.csproj
@@ -725,7 +725,7 @@ if $(ConfigurationName) == Debug copy /Y "$(TargetDir)Packages" "$(TargetDir)"</
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoadingViewVM.cs
index e280d5f9d..38dd569e1 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoadingViewVM.cs
@@ -74,39 +74,46 @@ namespace Tango.PPC.UI.ViewModels
/// </summary>
public async override void OnApplicationStarted()
{
- using (ObservablesContext db = ObservablesContext.CreateDefault())
- {
- var machine = await db.Machines.FirstAsync();
+ //We don't use authentication!
- if (db.Users.Count() == 1 || machine.AutoLogin)
- {
- var user = await new UserBuilder(db).SetFirst().WithRolesAndPermissions().BuildAsync();
+ //using (ObservablesContext db = ObservablesContext.CreateDefault())
+ //{
+ // var machine = await db.Machines.FirstAsync();
- if (!user.HasRole(Roles.PPCUser))
- {
- var role = db.Roles.Single(x => x.Code == (int)Roles.PPCUser);
- user.Roles.Add(role);
- db.UsersRoles.Add(new BL.Entities.UsersRole()
- {
- User = user,
- Role = role,
- });
- await db.SaveChangesAsync();
- }
+ // if (db.Users.Count() == 1 || machine.AutoLogin)
+ // {
+ // var user = await new UserBuilder(db).SetFirst().WithRolesAndPermissions().BuildAsync();
- LogManager.Log($"Application started. Single user/Auto login detected ({user.Email}). Skipping LoginView...");
- await AuthenticationProvider.Login(user.Email, user.Password, false);
- await Task.Delay(1000);
- IsLoading = false;
- }
- else
- {
- LogManager.Log("Application started. Navigating to LoginView...");
- await NavigationManager.NavigateTo(NavigationView.LoginView);
- await Task.Delay(1000);
- IsLoading = false;
- }
- }
+ // if (!user.HasRole(Roles.PPCUser))
+ // {
+ // var role = db.Roles.Single(x => x.Code == (int)Roles.PPCUser);
+ // user.Roles.Add(role);
+ // db.UsersRoles.Add(new BL.Entities.UsersRole()
+ // {
+ // User = user,
+ // Role = role,
+ // });
+ // await db.SaveChangesAsync();
+ // }
+
+ // LogManager.Log($"Application started. Single user/Auto login detected ({user.Email}). Skipping LoginView...");
+ // await AuthenticationProvider.Login(user.Email, user.Password, false);
+ // await Task.Delay(1000);
+ // IsLoading = false;
+ // }
+ // else
+ // {
+ // LogManager.Log("Application started. Navigating to LoginView...");
+ // await NavigationManager.NavigateTo(NavigationView.LoginView);
+ // await Task.Delay(1000);
+ // IsLoading = false;
+ // }
+ //}
+
+ LogManager.Log($"Application started with no authentication mode...");
+ await AuthenticationProvider.Login();
+ await Task.Delay(1000);
+ IsLoading = false;
}
}
}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
index aa9689ef3..ec316989f 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/LoginViewVM.cs
@@ -92,7 +92,13 @@ namespace Tango.PPC.UI.ViewModels
await Task.Delay(500);
- if (AuthenticationProvider.CurrentUser != null && AuthenticationProvider.CurrentUser.HasPermission(Permissions.RunPPC))
+ if (!AuthenticationProvider.AuthenticationRequired)
+ {
+ LogManager.Log("Application is ready! Navigating to home module...");
+ await NavigationManager.NavigateTo(NavigationView.HomeModule);
+ IsLoading = false;
+ }
+ else if (AuthenticationProvider.CurrentUser != null && AuthenticationProvider.CurrentUser.HasPermission(Permissions.RunPPC))
{
LogManager.Log("Application is ready! Navigating to home module...");
await NavigationManager.NavigateTo(NavigationView.HomeModule);