Changeset 8121


Ignore:
Timestamp:
May 23, 2019, 1:33:24 PM (3 years ago)
Author:
kopal
Message:

DECODEDatabaseTools:

  • components now automatically log in when username/password is present
  • some text changes
  • some small fixes
Location:
trunk/CrypPlugins/DECODEDatabaseTools
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/DECODEDatabaseTools/DECODEDatabaseTools.csproj

    r8120 r8121  
    191191    </None>
    192192  </ItemGroup>
     193  <ItemGroup>
     194    <Resource Include="logo.png" />
     195  </ItemGroup>
    193196  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    194197  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • trunk/CrypPlugins/DECODEDatabaseTools/DECODEDownloader.cs

    r8120 r8121  
    11/*
    2    Copyright 2018 Nils Kopal <Nils.Kopal<at>CrypTool.org
     2   Copyright 2019 Nils Kopal <Nils.Kopal<at>CrypTool.org
    33
    44   Licensed under the Apache License, Version 2.0 (the "License");
     
    1818using Cryptool.PluginBase;
    1919using Cryptool.PluginBase.Miscellaneous;
    20 using System.Net;
    2120using System.Runtime.Serialization.Json;
    2221using Cryptool.Plugins.DECODEDatabaseTools.DataObjects;
     
    104103        {
    105104            ProgressChanged(0, 1);
     105
     106            if (!JsonDownloaderAndConverter.IsLoggedIn())
     107            {
     108                var username = DECODESettingsTab.GetUsername();
     109                var password = DECODESettingsTab.GetPassword();
     110
     111                if(string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
     112                {
     113                    username = "anonymous";
     114                    password = "anonymous";
     115                }
     116
     117                var loginSuccess = JsonDownloaderAndConverter.Login(username, password);
     118                if (!loginSuccess)
     119                {
     120                    GuiLogMessage(Properties.Resources.LoginFailed,NotificationLevel.Error);
     121                    return;
     122                }
     123            }
     124
    106125            try
    107126            {
  • trunk/CrypPlugins/DECODEDatabaseTools/DECODESettingsTab.xaml

    r8120 r8121  
    77             d:DesignHeight="300" d:DesignWidth="500">
    88    <Grid>
    9         <StackPanel Name="stackPanel1" VerticalAlignment="Top" Margin="20">
     9        <StackPanel VerticalAlignment="Top" Margin="20">
     10            <Image Source="logo.png" Width="250" HorizontalAlignment="Left"/>
    1011            <Grid Width="500" HorizontalAlignment="Left">
    1112                <Grid.ColumnDefinitions>
     
    1415                </Grid.ColumnDefinitions>
    1516                <Grid.RowDefinitions>
     17                    <RowDefinition Height="60" />
    1618                    <RowDefinition Height="40" />
    1719                    <RowDefinition Height="40" />
    1820                    <RowDefinition Height="40" />
    1921                </Grid.RowDefinitions>
    20                 <Label Grid.Column="0" Grid.Row="0" Content="{Loc Username}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
    21                 <TextBox Name="UsernameTextbox"  Grid.Column="1" Grid.Row="0" HorizontalAlignment="Stretch"  TextChanged="UsernameTextbox_OnTextChanged" Margin="10,10,10,10"/>
     22                <TextBlock TextWrapping="WrapWithOverflow" Grid.Row="0" Grid.ColumnSpan="2"  HorizontalAlignment="Left" Text="{Loc SettingsInfoText}"/>
    2223
    23                 <Label Grid.Column="0" Grid.Row="1" Content="{Loc Password}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
    24                 <PasswordBox Name="PasswordTextbox"  Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch" PasswordChanged="PasswordTextbox_OnPasswordChanged" Margin="10,10,10,10"/>
     24                <Label Grid.Column="0" Grid.Row="1" Content="{Loc Username}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
     25                <TextBox Name="UsernameTextbox"  Grid.Column="1" Grid.Row="1" HorizontalAlignment="Stretch"  TextChanged="UsernameTextbox_OnTextChanged" Margin="10,10,10,10"/>
    2526
    26                 <Label Grid.Column="0" Grid.Row="2" Content="{Loc TestLoginData}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
    27                 <Button Name="TestLoginDataButton" Grid.Column="1" Grid.Row="2" Content="{Loc TestLoginData}" Click="TestLoginDataButton_OnClick" />
    28                
     27                <Label Grid.Column="0" Grid.Row="2" Content="{Loc Password}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
     28                <PasswordBox Name="PasswordTextbox"  Grid.Column="1" Grid.Row="2" HorizontalAlignment="Stretch" PasswordChanged="PasswordTextbox_OnPasswordChanged" Margin="10,10,10,10"/>
     29
     30                <Label Grid.Column="0" Grid.Row="3" Content="{Loc TestLoginData}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="12" Height="30"  />
     31                <Button Name="TestLoginDataButton" Grid.Column="1" Grid.Row="3" Content="{Loc TestLoginData}" Click="TestLoginDataButton_OnClick" />
    2932            </Grid>
    3033        </StackPanel>
  • trunk/CrypPlugins/DECODEDatabaseTools/DECODESettingsTab.xaml.cs

    r8120 r8121  
    6161            Properties.Settings.Default.Username = UsernameTextbox.Text;
    6262            Properties.Settings.Default.Save();
     63            JsonDownloaderAndConverter.LogOut();
    6364        }
    6465
     
    7576            Properties.Settings.Default.Password = Convert.ToBase64String(ProtectedData.Protect(UTF8Encoding.UTF8.GetBytes(PasswordTextbox.Password), iv, DataProtectionScope.CurrentUser));           
    7677            Properties.Settings.Default.Save();
     78            JsonDownloaderAndConverter.LogOut();
    7779        }
    7880
     
    98100
    99101        /// <summary>
    100         /// Returns, if the DECODE downloader and viewer should use the login
    101         /// </summary>
    102         /// <returns></returns>
    103         internal static bool GetUseLoginData()
    104         {
    105             return Properties.Settings.Default.UseLoginData;
    106         }
    107 
    108         /// <summary>
    109102        /// Method to test login data
    110103        /// </summary>
     
    118111                if (loginOk)
    119112                {
    120                     MessageBox.Show("Login credentials are correct!");
     113                    MessageBox.Show(Properties.Resources.CredentialsOK, null, MessageBoxButton.OK, MessageBoxImage.Information);
    121114                }
    122115                else
    123116                {
    124                     MessageBox.Show("Login credentials are wrong!");
     117                    MessageBox.Show(Properties.Resources.CredentialsWrong,null,MessageBoxButton.OK,MessageBoxImage.Error);
    125118                }
    126119            }
  • trunk/CrypPlugins/DECODEDatabaseTools/DECODEViewer.cs

    r8120 r8121  
    1818using Cryptool.PluginBase;
    1919using Cryptool.PluginBase.Miscellaneous;
    20 using System.Net;
    2120using Cryptool.Plugins.DECODEDatabaseTools.DataObjects;
    2221using System.IO;
     
    3029using System.Drawing.Drawing2D;
    3130using System.Threading.Tasks;
    32 using System.Windows.Media.Imaging;
    3331
    3432namespace Cryptool.Plugins.DECODEDatabaseTools
     
    133131        public void Execute()
    134132        {
     133            if (!JsonDownloaderAndConverter.IsLoggedIn())
     134            {
     135                var username = DECODESettingsTab.GetUsername();
     136                var password = DECODESettingsTab.GetPassword();
     137
     138                if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
     139                {
     140                    username = "anonymous";
     141                    password = "anonymous";
     142                }
     143
     144                var loginSuccess = JsonDownloaderAndConverter.Login(username, password);
     145                if (!loginSuccess)
     146                {
     147                    GuiLogMessage(Properties.Resources.LoginFailed, NotificationLevel.Error);
     148                    _running = false;
     149                    return;
     150                }
     151            }
     152
    135153            _running = true;
    136154            ProgressChanged(0, 1);
  • trunk/CrypPlugins/DECODEDatabaseTools/DataObjects.cs

    r8120 r8121  
    1 using System;
    2 using Cryptool.PluginBase.Miscellaneous;
    3 /*
    4    Copyright 2018 Nils Kopal <Nils.Kopal<at>CrypTool.org
     1/*
     2   Copyright 2019 Nils Kopal <Nils.Kopal<at>CrypTool.org
    53
    64   Licensed under the Apache License, Version 2.0 (the "License");
     
    1614   limitations under the License.
    1715*/
     16using System;
    1817using System.Collections.Generic;
    19 using System.ComponentModel;
    2018using System.IO;
    2119using System.Runtime.Serialization;
    22 using System.Threading.Tasks;
    2320using System.Windows.Media;
    2421using System.Windows.Media.Imaging;
     
    207204
    208205        private byte[] document_data;
     206
    209207        /// <summary>
    210208        /// Tries to download the document; if it fails, it returns null
  • trunk/CrypPlugins/DECODEDatabaseTools/JsonDownloaderAndConverter.cs

    r8120 r8121  
    226226            return _cookieContainer.Count == 1;
    227227        }
     228
     229        /// <summary>
     230        /// Removes the cookie to log out
     231        /// </summary>
     232        public static void LogOut()
     233        {
     234            _cookieContainer = new CookieContainer();
     235        }
    228236    }
    229237}
  • trunk/CrypPlugins/DECODEDatabaseTools/Properties/Resources.Designer.cs

    r8120 r8121  
    161161       
    162162        /// <summary>
     163        ///   Sucht eine lokalisierte Zeichenfolge, die Login credentials are correct! ähnelt.
     164        /// </summary>
     165        internal static string CredentialsOK {
     166            get {
     167                return ResourceManager.GetString("CredentialsOK", resourceCulture);
     168            }
     169        }
     170       
     171        /// <summary>
     172        ///   Sucht eine lokalisierte Zeichenfolge, die Login credentials are wrong! ähnelt.
     173        /// </summary>
     174        internal static string CredentialsWrong {
     175            get {
     176                return ResourceManager.GetString("CredentialsWrong", resourceCulture);
     177            }
     178        }
     179       
     180        /// <summary>
    163181        ///   Sucht eine lokalisierte Zeichenfolge, die Dating: ähnelt.
    164182        /// </summary>
     
    297315       
    298316        /// <summary>
    299         ///   Sucht eine lokalisierte Zeichenfolge, die The creator of this record has chosen to not make this image available for download. ähnelt.
     317        ///   Sucht eine lokalisierte Zeichenfolge, die The creator of this record decided not to make this image available for download. ähnelt.
    300318        /// </summary>
    301319        internal static string image_not_available_for_download {
     
    342360       
    343361        /// <summary>
     362        ///   Sucht eine lokalisierte Zeichenfolge, die Could not log into DECODE database. Please check your login credentials. ähnelt.
     363        /// </summary>
     364        internal static string LoginFailed {
     365            get {
     366                return ResourceManager.GetString("LoginFailed", resourceCulture);
     367            }
     368        }
     369       
     370        /// <summary>
    344371        ///   Sucht eine lokalisierte Zeichenfolge, die Name: ähnelt.
    345372        /// </summary>
     
    473500            get {
    474501                return ResourceManager.GetString("Sender", resourceCulture);
     502            }
     503        }
     504       
     505        /// <summary>
     506        ///   Sucht eine lokalisierte Zeichenfolge, die If you want to access the DECODE database in CrypTool 2, you have to go https://cl.lingfil.uu.se/decode/database and create a user account. Then, enter your credentials below: ähnelt.
     507        /// </summary>
     508        internal static string SettingsInfoText {
     509            get {
     510                return ResourceManager.GetString("SettingsInfoText", resourceCulture);
    475511            }
    476512        }
  • trunk/CrypPlugins/DECODEDatabaseTools/Properties/Resources.de.resx

    r8120 r8121  
    161161  </data>
    162162  <data name="DecodeDownloaderPluginTooltip" xml:space="preserve">
    163     <value>Component to download data from the DECODE database</value>
     163    <value>Komponente zum Herunterladen von Daten aus der DECODE-Datenbank</value>
    164164  </data>
    165165  <data name="DecodeRecordCaption" xml:space="preserve">
     
    194194  </data>
    195195  <data name="image_not_available_for_download" xml:space="preserve">
    196     <value>Der Ersteller dieses Datensatzes hat sich entschieden, dieses Bild nicht zum Download zur Verfügung zu stellen.</value>
     196    <value>Der Ersteller dieses Datensatzes entschied, dieses Bild nicht zum Download zur Verfügung zu stellen.</value>
    197197  </data>
    198198  <data name="InkType" xml:space="preserve">
     
    281281  </data>
    282282  <data name="TestLoginData" xml:space="preserve">
    283     <value>Login-Daten testen:</value>
     283    <value>Login-Daten testen</value>
    284284  </data>
    285285  <data name="UseLoginData" xml:space="preserve">
    286286    <value>Anmeldedaten verwenden:</value>
    287287  </data>
     288  <data name="SettingsInfoText" xml:space="preserve">
     289    <value>Wenn Sie in CrypTool 2 auf die DECODE-Datenbank zugreifen möchten, müssen Sie unter https://cl.lingfil.uu.se/decode/database ein Benutzerkonto erstellen. Geben Sie anschließend Ihre Anmeldedaten hier ein:</value>
     290  </data>
     291  <data name="LoginFailed" xml:space="preserve">
     292    <value>Anmeldung bei DECODE-Datenbank nicht möglich. Bitte überprüfen Sie Ihre Zugangsdaten.</value>
     293  </data>
     294  <data name="CredentialsOK" xml:space="preserve">
     295    <value>Anmeldedaten sind korrekt!</value>
     296  </data>
     297  <data name="CredentialsWrong" xml:space="preserve">
     298    <value>Anmeldedaten sind falsch!</value>
     299  </data>
    288300</root>
  • trunk/CrypPlugins/DECODEDatabaseTools/Properties/Resources.resx

    r8120 r8121  
    201201  </data>
    202202  <data name="image_not_available_for_download" xml:space="preserve">
    203     <value>The creator of this record has chosen to not make this image available for download.</value>
     203    <value>The creator of this record decided not to make this image available for download.</value>
    204204  </data>
    205205  <data name="InkType" xml:space="preserve">
     
    290290    <value>Use login data:</value>
    291291  </data>
     292  <data name="SettingsInfoText" xml:space="preserve">
     293    <value>If you want to access the DECODE database in CrypTool 2, you have to go https://cl.lingfil.uu.se/decode/database and create a user account. Then, enter your credentials below:</value>
     294  </data>
     295  <data name="LoginFailed" xml:space="preserve">
     296    <value>Could not log into DECODE database. Please check your login credentials.</value>
     297  </data>
     298  <data name="CredentialsOK" xml:space="preserve">
     299    <value>Login credentials are correct!</value>
     300  </data>
     301  <data name="CredentialsWrong" xml:space="preserve">
     302    <value>Login credentials are wrong!</value>
     303  </data>
    292304</root>
  • trunk/CrypPlugins/DECODEDatabaseTools/Properties/Resources.ru.resx

    r8120 r8121  
    281281  </data>
    282282  <data name="TestLoginData" xml:space="preserve">
    283     <value>Проверьте данные для входа:</value>
     283    <value>Проверьте данные для входа</value>
    284284  </data>
    285285  <data name="UseLoginData" xml:space="preserve">
    286286    <value>Используйте данные для входа:</value>
    287287  </data>
     288  <data name="String" xml:space="preserve">
     289    <value>Если вы хотите получить доступ к базе данных DECODE в CrypTool 2, вам нужно зайти на https://cl.lingfil.uu.se/decode/database и создать учетную запись пользователя. Затем введите свои учетные данные ниже:</value>
     290  </data>
     291  <data name="LoginFailed" xml:space="preserve">
     292    <value>Не удалось войти в базу данных DECODE. Пожалуйста, проверьте ваши учетные данные.</value>
     293  </data>
     294  <data name="CredentialsOK" xml:space="preserve">
     295    <value>Данные для входа верны!</value>
     296  </data>
     297  <data name="CredentialsWrong" xml:space="preserve">
     298    <value>Учетные данные неверны!</value>
     299  </data>
    288300</root>
  • trunk/CrypPlugins/DECODEDatabaseTools/app.config

    r8120 r8121  
    99        <Cryptool.Plugins.DECODEDatabaseTools.Properties.Settings>
    1010            <setting name="Username" serializeAs="String">
    11                 <value/>
     11                <value />
    1212            </setting>
    1313            <setting name="Password" serializeAs="String">
    14                 <value/>
    15             </setting>
    16             <setting name="UseLoginData" serializeAs="String">
    17                 <value>False</value>
     14                <value />
    1815            </setting>
    1916            <setting name="PasswordIV" serializeAs="String">
    20                 <value/>
     17                <value />
    2118            </setting>
    2219        </Cryptool.Plugins.DECODEDatabaseTools.Properties.Settings>
Note: See TracChangeset for help on using the changeset viewer.