unknown 7 hours ago
parent
commit
da7cd291d9

+ 7 - 0
progect/avalonia_auth_practice_9/avalonia_auth_practice_9/Models/PartialUser.cs

@@ -0,0 +1,7 @@
+namespace avalonia_auth_practice_9.Models
+{
+    public partial class PartialUser
+    {
+
+    }
+}

+ 11 - 1
progect/avalonia_auth_practice_9/avalonia_auth_practice_9/ViewModels/AuthPageVm.cs

@@ -1,6 +1,8 @@
 
 
 using avalonia_auth_practice_9.Models;
+using System.Collections.Generic;
+using System.Linq;
 
 namespace avalonia_auth_practice_9.ViewModels
 {
@@ -10,7 +12,15 @@ namespace avalonia_auth_practice_9.ViewModels
         private string _password;
         private User _user;
 
-        
+        public bool AdminRegistration => adminExists();
+
+        private List<string> statusList = new List<string>() { "", "Вход", "Регистрация" };
+        private List<Role> _roles = MainWindowViewModel.database.Roles.ToList();
+
+        private bool adminExists()
+        {
+            return MainWindowViewModel.database.Users.Any(x => x.Role == _roles.FirstOrDefault(x => x.Role1 == "Администратор").Id).Equals(true);
+        }
 
     }
 }

+ 33 - 3
progect/avalonia_auth_practice_9/avalonia_auth_practice_9/Views/AuthPage.axaml

@@ -17,69 +17,99 @@
 			<TextBlock Classes="MainHeader" Text="Вход/Регистрация"></TextBlock>
 		</StackPanel>
 		<StackPanel Grid.Row="1" Margin="0,150">
+
 			<!--Создание администратора: кнопка-->
+
 			<StackPanel IsVisible="True">
-				<Button Classes="Push" Content="Зарегистрировать администратора"></Button>
+				<Button Classes="Push" Content="Зарегистрировать администратора" IsVisible="{Binding !AdminRegistration}"></Button>
 			</StackPanel>
+
 			<!--Создание простого пользователя: кнопка-->
+
 			<StackPanel IsVisible="True">
-				<Button Classes="Push" Content="Регистрация"></Button>
+				<Button Classes="Push" Content="Регистрация" IsVisible="{Binding AdminRegistration}"></Button>
 			</StackPanel>
+
 			<!--Вход под пользователя: кнопка-->
+
 			<StackPanel IsVisible="True">
-				<Button Classes="Push" Content="Авторизация"></Button>
+				<Button Classes="Push" Content="Авторизация" IsVisible="{Binding AdminRegistration}"></Button>
 			</StackPanel>
 		</StackPanel>
 		<StackPanel Grid.Row="1" HorizontalAlignment="Center" IsVisible="True">
+
 			<!--Поля логина и пароля-->
+
 			<StackPanel>
+
 				<!--Логин-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Введите логин:"></TextBlock>
 					<TextBox Classes="Input"></TextBox>
 				</StackPanel>
+
 				<!--Пароль-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Введите пароль:"></TextBlock>
 					<TextBox PasswordChar="*" Classes="Input"></TextBox>
 				</StackPanel>
 			</StackPanel>
+
 			<!--Поля для регистрации-->
+
 			<StackPanel IsVisible="True">
+
 				<!--Фамилия-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Введите фамилию:"></TextBlock>
 					<TextBox  Classes="Input"></TextBox>
 				</StackPanel>
+
 				<!--Имя-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Введите имя:"></TextBlock>
 					<TextBox  Classes="Input"></TextBox>
 				</StackPanel>
+
 				<!--Отчество-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Введите отчество:"></TextBlock>
 					<TextBox  Classes="Input"></TextBox>
 				</StackPanel>
+
 				<!--Фотография-->
+
 				<StackPanel>
 					<TextBlock Classes="SubHeader" Text="Ваша фотография:"></TextBlock>
 					<Image ></Image>
 				</StackPanel>
+
 				<!--Изменить фото-->
+
 				<Button Classes="Push" Content="Выбрать фотографию"></Button>
 			</StackPanel>
 		</StackPanel>
 		<StackPanel Grid.Row="2" HorizontalAlignment="Center"  IsVisible="True">
+
 			<!--Создание администратора: кнопка-->
+
 			<StackPanel IsVisible="True">
 				<Button Classes="Push" Content="Зарегистрировать администратора"></Button>
 			</StackPanel>
+
 			<!--Создание простого пользователя: кнопка-->
+
 			<StackPanel IsVisible="True">
 				<Button Classes="Push" Content="Регистрация"></Button>
 			</StackPanel>
+
 			<!--Вход под пользователя: кнопка-->
+
 			<StackPanel IsVisible="True">
 				<Button Classes="Push" Content="Авторизация"></Button>
 			</StackPanel>

+ 19 - 5
progect/avalonia_auth_practice_9/avalonia_auth_practice_9/WorkWithPassword/MyPassword.cs

@@ -24,10 +24,6 @@ namespace avalonia_auth_practice_9.Hash
 
                 if (regex.IsMatch(data))
                 {
-                    // pattern = @"^.{8,}$";
-                    //(\p{Ll}\w*?){3,} - строчные
-                    //(\d\w*?){2,} - цифры
-
                     pattern = @"(\p{Lu}\w*?){2,}";
 
                     if (regex.IsMatch(data))
@@ -36,11 +32,29 @@ namespace avalonia_auth_practice_9.Hash
 
                         if (regex.IsMatch(data))
                         {
+                            pattern = @"(\d\w*?){2,}";
+
+                            if (regex.IsMatch(data))
+                            {
+                                pattern = @"^.{8,}$";
 
+                                if (regex.IsMatch(data))
+                                {
+                                    return string.Empty;
+                                }
+                                else
+                                {
+                                    return "В пароле должно быть минимум 8 символов";
+                                }
+                            }
+                            else
+                            {
+                                return "В пароле должно быть минимум 2 цифр";
+                            }
                         }
                         else
                         {
-                            return "В пароле должно быть минимум 2 заглавных буквы";
+                            return "В пароле должно быть минимум 3 строчных буквы";
                         }
                     }
                     else

+ 0 - 1
progect/avalonia_auth_practice_9/avalonia_auth_practice_9/avalonia_auth_practice_9.csproj

@@ -9,7 +9,6 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <Folder Include="Models\" />
     <AvaloniaResource Include="Assets\**" />
   </ItemGroup>