Commit 8c4bafba authored by Francesco Carraro's avatar Francesco Carraro
Browse files

fixed current user page and logout

parent ee603f84
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,6 +10,6 @@
  </ItemGroup>

   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
   </ItemGroup>
</Project>
+2 −1
Original line number Diff line number Diff line
@@ -169,12 +169,13 @@ namespace INAF.Apps.Uwp.SLabDataManager
                /* usercontrols viewmodels */
                .AddScoped<AlignmentViewModel>()
                .AddScoped<MeasurementInfoViewModel>()
                .AddScoped<SampleDataViewModel>()
                .AddScoped<InfoViewModel>()
                .AddSingleton<SegmentsFitViewModel>()
                .AddScoped<SmoothingViewModel>()
                .AddSingleton<UserControlsViewModelFactory>()
                /* view models */
                .AddSingleton<ChartViewModel>()
                .AddScoped<CurrentUserViewModel>()
                .AddSingleton<CustomPaletteHelper>()
                .AddTransient<LoginViewModel>()
                .AddTransient<LoginCheckViewModel>()
+6 −4
Original line number Diff line number Diff line
@@ -16,19 +16,21 @@
		<operation type="SaveAsCopySpectrumOfTypeContinuumRemoved">AppSpectraFilesActions/SaveAsCopySpectrumOfTypeContinuumRemoved</operation>
		<operation type="SaveSpectrumOfTypeRaw">AppSpectraFilesActions/SaveSpectrumOfTypeRaw</operation>
		<operation type="SaveSpectrumOfTypeSmoothed">AppSpectraFilesActions/SaveSpectrumOfTypeSmoothed</operation>
		<operation type="SaveSpectrumSampleData">AppSpectraFilesActions/SaveSpectrumSampleData</operation>
		<operation type="IsAnySpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsAnySpectrumTypeSavedOnCloud</operation>
		<operation type="IsSpectrumTypeSavedOnCloud">AppSpectraFilesActions/IsSpectrumTypeSavedOnCloud</operation>
		<operation type="GetChildrenSpectraTypes">AppSpectraFilesActions/GetChildrenSpectraTypes</operation>
		<!-- USERS -->
		<operation type="GetUserDetailsSimple">Users/GetUserDetailsSimple</operation>
		<operation type="GetUserPermissions">Users/GetUserPermissions</operation>
		<!-- PERMISSIONS -->
		<operation type="IsSaveOnCloudFromAppPermissionGranted">Permissions/IsSaveOnCloudFromAppPermissionGranted</operation>
		<!-- SAMPLE AND MEASUREMENT -->
		<operation type="GetSpectrumMeasurementInfo">SampleAndMeasurement/GetSpectrumMeasurementInfo</operation>
		<operation type="GetSpectrumSampleData">SampleAndMeasurement/GetSpectrumSampleData</operation>
		<!-- MINERALS -->
		<operation type="GetMinerals">Minerals/GetMinerals</operation>
		<operation type="GetSampleDataValues">Minerals/GetSampleDataValues</operation>
		<operation type="SaveInfo">SampleAndMeasurement/SaveInfo</operation>
		<!-- MATERIALS -->
		<operation type="GetMinerals">Materials/GetMinerals</operation>
		<operation type="GetRocks">Materials/GetRocks</operation>
		<operation type="GetSampleDataValues">Materials/GetSampleDataValues</operation>
	</operationUrls>
</remoteOperationsData>
 No newline at end of file
+25 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ using INAF.Apps.Uwp.SLabDataManager.Models.Charts;
using INAF.Apps.Uwp.SLabDataManager.Models.Containers;
using INAF.Apps.Uwp.SLabDataManager.ViewModels;
using INAF.Libraries.NetStandard.SLabCommonModels.Extensions;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions;
using System;
using System.Collections.Generic;
using System.IO;
@@ -220,6 +221,30 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
        }
    }

    public sealed class PermissionDescriptionConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            try
            {
                PermissionModel permission = (PermissionModel)value;
                if (!string.IsNullOrEmpty(permission.Description))
                    return string.Join(string.Empty, "(", permission.Description, ")");
                else
                    return string.Empty;
            }
            catch (Exception)
            {
                return string.Empty;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class ShortFilepathConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
+32 −5
Original line number Diff line number Diff line
using INAF.Libraries.NetStandard.SLabCommonModels.Enums;
using INAF.Apps.Uwp.SLabDataManager.Helpers.RemoteOperations;
using INAF.Libraries.NetStandard.SLabCommonModels.Enums;
using INAF.Libraries.NetStandard.SLabCommonModels.Models.WebApp.Permissions;
using INAF.Libraries.Uwp.Logging;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers
{
    public sealed class PermissionsHelper
    {
        public PermissionsHelper()
        { }
        private readonly IServiceProvider serviceProvider;
        private readonly Logger logger;

        public PermissionsHelper(IServiceProvider serviceProvider)
        {
            this.serviceProvider = serviceProvider;

            logger = serviceProvider.GetRequiredService<Logger>();

            tryInitAsync();
        }

        public List<PermissionModel> Permissions { get; private set; }

@@ -20,9 +34,22 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers
            return Permissions.Any(x => x.Id == (int)permission);
        }

        public void setPermissions(List<PermissionModel> permissions)
        public async Task<bool> tryInitAsync()
        {
            Permissions = permissions;
            bool isOk = true;

            try
            {
                RemoteOperationsManager remoteOperationsManager = serviceProvider.GetRequiredService<RemoteOperationsManager>();
                Permissions = await remoteOperationsManager.getUserPermissionsAsync();
            }
            catch (Exception ex)
            {
                isOk = false;
                logger.Write<PermissionsHelper>($"{nameof(tryInitAsync)} - ex: {ex.Message}", Serilog.Events.LogEventLevel.Error);
            }

            return isOk;
        }

        #region wrappers
Loading