Topic: Встроенная авторизация

Что то не пойму как работает встроенная авторизация. вход по логину и паролю. Как она вообще настраивается. Как её вообще редактировать. Таблицы появились, а что с ними делать не пойму. Как меняется пароль у админа. Совсем не понимаю

2 (edited by sparrow 2023-09-15 13:32:29)

Re: Встроенная авторизация

Можно попробовать почитать
http://myvisualdatabase.com/doc_ru/roles.html

3 (edited by oleg 2023-09-15 12:02:18)

Re: Встроенная авторизация

sparrow wrote:

Можно попробовать почитать

http://myvisualdatabase.com/doc_ru/roles.html

Страница не открывается. Я думал если это встроенная, а не сторонняя форма авторизации то она должна быть понятна простым начинающим

Re: Встроенная авторизация

http://myvisualdatabase.com/doc_ru/roles.html

Re: Встроенная авторизация

Роли, права, авторизация и аутентификация - это довольно сложные понятия, даже в самой простой реализации. В My Visual Database они представлены по принципу "необходимо и достаточно": из коробки имеются все элементы и механизмы для создания системы прав, построенной на концепции роли:
- хранение личных данных пользователей в БД
- хранение ролей в проекте
- настройка сценариев поведения компонентов в зависимости от роли пользователя
- форма аутентификации и авторизации
- форма для редактирования учетных данных пользователей (доступна только админу)
- форма смены пароля

Визуальное программирование: блог и телеграм-канал.

Re: Встроенная авторизация

Спасибо. На самом деле я читаю эту книгу, но почему то именно этот раздел я обходил стороной. Теперь мне всё понятно.

Re: Встроенная авторизация

Добрый день, как с встроенной авторизацией получить информацию кто авторизировался в программе?
До того как начал использовать встроенную авторизацию, я пользовался авторизацией через скрипт и кто авторизировался в программе указывалось в скрипте в переменной:
var                                             
   sUser: string = '';
А сейчас выводит пустой текст

Re: Встроенная авторизация

dazzleqq wrote:

Добрый день, как с встроенной авторизацией получить информацию кто авторизировался в программе?
До того как начал использовать встроенную авторизацию, я пользовался авторизацией через скрипт и кто авторизировался в программе указывалось в скрипте в переменной:
var                                             
   sUser: string = '';
А сейчас выводит пустой текст

application.User.Username;  

Re: Встроенная авторизация

Спасибо! А как в FastReport вывести? Что в запросе писать?

Re: Встроенная авторизация

Привет Dazzleqq
Несомненно, существует технически гораздо более совершенный способ сделать это, но я всегда выбирал простой вариант и жульничал!  big_smile
Однако я бы не рекомендовал этот вариант, если у вас большое количество записей — тогда я думаю, вам, вероятно, следует сделать это «правильным» способом.
Пожалуйста, посмотрите приложение.
Derek.

Post's attachments

Attachment icon authoriser.zip 443.99 kb, 79 downloads since 2023-09-23 

Re: Встроенная авторизация

derek wrote:

Привет Dazzleqq
Несомненно, существует технически гораздо более совершенный способ сделать это, но я всегда выбирал простой вариант и жульничал!  big_smile
Однако я бы не рекомендовал этот вариант, если у вас большое количество записей — тогда я думаю, вам, вероятно, следует сделать это «правильным» способом.
Пожалуйста, посмотрите приложение.
Derek.

Спасибо, Derek! Еще вопрос, а вывести по мимо пользователя еще и должность его? Если можно, то покажите на Вашем примере. Спасибо.

Re: Встроенная авторизация

Привет,
Если я правильно понял, то возможно попробуйте так.
Derek.

Post's attachments

Attachment icon authoriser in report2.zip 444.67 kb, 73 downloads since 2023-09-24 

Re: Встроенная авторизация

derek wrote:

Привет,
Если я правильно понял, то возможно попробуйте так.
Derek.

Чуть чуть не то, но спасибо за ответ)

Re: Встроенная авторизация

Просьба подсказать знающих пользователей.

Такая ситуация. В добавлении пользователей изменил имя Администратора и теперь при заходе пишет неверный логин или пароль. Можно как-то восстановить пароль или скинуть его, сейчас нет возможности заходить в программу под админом, только под менеджером.

Re: Встроенная авторизация

Sergynhik wrote:

Просьба подсказать знающих пользователей.

Такая ситуация. В добавлении пользователей изменил имя Администратора и теперь при заходе пишет неверный логин или пароль. Можно как-то восстановить пароль или скинуть его, сейчас нет возможности заходить в программу под админом, только под менеджером.

Какой тип СУБД?

Визуальное программирование: блог и телеграм-канал.

Re: Встроенная авторизация

k245 wrote:
Sergynhik wrote:

Просьба подсказать знающих пользователей.

Такая ситуация. В добавлении пользователей изменил имя Администратора и теперь при заходе пишет неверный логин или пароль. Можно как-то восстановить пароль или скинуть его, сейчас нет возможности заходить в программу под админом, только под менеджером.

Какой тип СУБД?

SQLite

17 (edited by k245 2023-10-26 14:16:45)

Re: Встроенная авторизация

SQLiteStudio вам в помощь. Заходите и меняете что вам там нужно )))
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10004&download=0

https://sqlitestudio.pl

Post's attachments

Attachment icon изображение_2023-10-26_171504806.png 42.89 kb, 20 downloads since 2023-10-26 

Визуальное программирование: блог и телеграм-канал.

Re: Встроенная авторизация

adminadmin)

Re: Встроенная авторизация

Привет Sergynhik, Konstantin,
Другой вариант — добавить в приложение новую форму с таблицей, которая отображает содержимое таблицы «_user» (см. вложение — Пользователь «Derek», Пароль «derek»);
Измените флаг «is_admin» на «да» для «Идентификатора пользователя», под которым вы вошли в систему, а затем повторно войдите в систему с тем же идентификатором пользователя. После этого у вас должен быть полный доступ для управления пользователями из меню «Параметры».
После устранения проблемы вы можете удалить эту опцию (или сделать ее видимой только для тех пользователей, у которых флаг is_admin установлен на «да»).
С уважением,
Derek.
.
Another option is to add a new form to your application with a tablegrid that displays the contents of the '_user' table (see the attachment - user Derek, password derek). 
Change the 'is_admin' flag to 'yes' for the 'User ID' you have logged in as and then re-log on to the system with the same User ID.  You should then have full access to maintain users. 
Once you have fixed the problem, you may want to remove this option (or make it only visible to those users who have the 'is_admin' flag set to 'yes').

Post's attachments

Attachment icon admin user.zip 441.69 kb, 57 downloads since 2023-10-26 

Re: Встроенная авторизация

Спасибо большое всем за помощь.

Re: Встроенная авторизация

k245 wrote:

SQLiteStudio вам в помощь. Заходите и меняете что вам там нужно )))
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10004&download=0

https://sqlitestudio.pl

Каким методом хэшируется пароль? (md5(md5(password))?

22 (edited by k245 2023-10-31 10:25:48)

Re: Встроенная авторизация

md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))

Визуальное программирование: блог и телеграм-канал.

Re: Встроенная авторизация

k245 wrote:

md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))

Интересно, если это такая защита от редактирования, то почему было бы не сделать md5(password+username+id_role+is_admin)...

Re: Встроенная авторизация

k245 wrote:

md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))

Благодарю

Re: Встроенная авторизация

k245 wrote:

md5(password+username)
Отсюда интересное следствие - после редактирования имени пользователя его пароль становится недействительным ))

Подскажите, может быть знаете. Как в PHP сделать проверку пароля при авторизации? Я пытаюсь так

$login = $data['login'];
$password = $data['password'];
$user = R::findOne('_user', 'username = ?', array($login));
if ($user) {
    // логин существует
    $hashed_password_from_db = $user->password;
    if (md5($password . $login) === $hashed_password_from_db) {
        // если пароль совпадает, то нужно авторизовать пользователя
        session_start();
        $_SESSION['logged_user'] = $user;
        header('Location: /');
        exit();
    } else {
        $errors[] = 'Неверно введен пароль!';
    }
} else {
    $errors[] = 'Пользователь с таким логином не найден!';
}

Но так не получается