Профили
От: Буравчик Россия  
Дата: 21.05.09 20:58
Оценка:
Пытаюсь разобраться с профилями пользователей (Ticket #4)

1. Философский вопрос. А зачем профили вообще нужны? На одной машине сидит несколько человек? Тогда, интересно, они сидят под разными аккаунтами или нет.

2. Сейчас работает так, вроде:
Янус пытается считать значение HKCU\Software\Rsdn\Janus\LocalUser\DBPath из реестра.
а) Если такой ключ существует, то Янус считает, что пользователь уже есть (т.е. это не первый запуск), а данный ключ указывает на каталог, в котором хранится конфиг пользователя. Затем считывает конфиг, в котором хранится строка подключения к БД, и подключается к базе.
б) Если ключ не найден, то выводит окошко, в котором можно задать имя и пароль пользователя, каталог с конфигом, а также строку подключения к базе. После этого создает ключ в реестре и создает конфиг в указанном каталоге. После этого обычно отваливается, скорее всего из-за того, что не была корректным образом подготовлена БД. Зато при следующем запуске работа происходит по сценарию "а" и все ОК.

Если пользователь входит под другим windows-аккаунтом, то ветка СurrentUser будет для него другая (своя). Значит Янус будет считать его новым пользователем и можно будет ввести свои настройки. Эти настройки будут прописаны в реестр. Т.е. в дальнейшем Янус будет использовать разные настройки для разных пользователей.

В то же время в Янус введено окошко выбора профиля, в котором можно управлять профилями. Глючное окошко, ну да ладно. Раз такое окошко было введено, то подразумевалось, видимо, что можно выбирать профиль при запуске Януса. Т.е. несколько пользователей сидят под одним windows-аккаунтом.

3. И теперь самое главное. Как задумывалась работа с профилями? Где предполагается хранить профили?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re: Профили
От: Буравчик Россия  
Дата: 21.05.09 21:08
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>3. И теперь самое главное. Как задумывалась работа с профилями? Где предполагается хранить профили?


Вообще-то меня интересует проблема первого запуска. Но уж больно первый запуск на профили завязан. Или я не до конца разобрался?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.05.09 21:28
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>1. Философский вопрос. А зачем профили вообще нужны? На одной машине сидит несколько человек?


Да.

Б> Тогда, интересно, они сидят под разными аккаунтами или нет.


Под разными.

Б>а) Если такой ключ существует, то Янус считает, что пользователь уже есть (т.е. это не первый запуск), а данный ключ указывает на каталог, в котором хранится конфиг пользователя. Затем считывает конфиг, в котором хранится строка подключения к БД, и подключается к базе.


Примерно так.

Б>б) Если ключ не найден, то выводит окошко, в котором можно задать имя и пароль пользователя, каталог с конфигом, а также строку подключения к базе. После этого создает ключ в реестре и создает конфиг в указанном каталоге. После этого обычно отваливается, скорее всего из-за того, что не была корректным образом подготовлена БД. Зато при следующем запуске работа происходит по сценарию "а" и все ОК.


Да.

Б>Если пользователь входит под другим windows-аккаунтом, то ветка СurrentUser будет для него другая (своя). Значит Янус будет считать его новым пользователем и можно будет ввести свои настройки. Эти настройки будут прописаны в реестр. Т.е. в дальнейшем Янус будет использовать разные настройки для разных пользователей.


Да.

Б>В то же время в Янус введено окошко выбора профиля, в котором можно управлять профилями. Глючное окошко, ну да ладно. Раз такое окошко было введено, то подразумевалось, видимо, что можно выбирать профиль при запуске Януса. Т.е. несколько пользователей сидят под одним windows-аккаунтом.


Да.

Б>3. И теперь самое главное. Как задумывалась работа с профилями? Где предполагается хранить профили?


В All Users профиле.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[2]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.05.09 21:28
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Вообще-то меня интересует проблема первого запуска. Но уж больно первый запуск на профили завязан. Или я не до конца разобрался?


Сейчас — не завязан. Это как раз таки попытка решить в том числе и проблему с первым запуском, но там все в очень зачаточном состоянии.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[2]: Профили
От: Буравчик Россия  
Дата: 21.05.09 21:41
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Б>> Тогда, интересно, они сидят под разными аккаунтами или нет.

AVK>Под разными.

Так-с. Как я выше сказал, в принципе, профили для разных windows-аккаунтов работают. Конечно необходимо кое-что сделать, но все же.
Но тогда:
а) Если один windows-аккаунт = один пользователь rsdn, то зачем окно выбора профиля?
б) Если один windows-аккаунт = много пользователей rsdn, то зачем привязка к windows-аккаунту и реестру?

Хотя, мне больше нравится вариант "а"

Б>>3. И теперь самое главное. Как задумывалась работа с профилями? Где предполагается хранить профили?

AVK>В All Users профиле.

Ага. Все таки вариант "б". Ну уж-то это практикуется? Или есть какие-то плюсы такого подхода?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re[3]: Профили
От: Буравчик Россия  
Дата: 21.05.09 21:41
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Б>>Вообще-то меня интересует проблема первого запуска. Но уж больно первый запуск на профили завязан. Или я не до конца разобрался?

AVK>Сейчас — не завязан. Это как раз таки попытка решить в том числе и проблему с первым запуском, но там все в очень зачаточном состоянии.

Там — это с профилями?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re[4]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.05.09 21:55
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Там — это с профилями?


Да.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[3]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.05.09 21:55
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Так-с. Как я выше сказал, в принципе, профили для разных windows-аккаунтов работают. Конечно необходимо кое-что сделать, но все же.

Б>Но тогда:
Б>а) Если один windows-аккаунт = один пользователь rsdn, то зачем окно выбора профиля?

А оно по дефолту должно показываться только один раз пр и первом старте. Это как раз снимает проблемы в логике с первым запуском, так как теперь это явная стадия.

Б>б) Если один windows-аккаунт = много пользователей rsdn, то зачем привязка к windows-аккаунту и реестру?


Так ее как раз таки и нужно уничтожить.

AVK>>В All Users профиле.


Б>Ага. Все таки вариант "б". Ну уж-то это практикуется? Или есть какие-то плюсы такого подхода?


Плюсы по сравнению с чем? С вариантом заведения по аккаунту для каждого пользователя? Далеко не всегда это приемлемо. Вот, к примеру, у меня сейчас несколько "профилей" с разными типами БД для тестирования. Предлагается завести несколько юзверей под каждый тип БД? Так же я знаю, что ряд людей предпочитает в некоторых случаях по разным причинам основной аккаунт не светить. Или, к примеру, если я в поездке пользуюсь чужим ноутом, мне его хозяина напрягать чтобы он под меня отдельный аккаунт создавал?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[4]: Профили
От: Буравчик Россия  
Дата: 22.05.09 07:52
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Так. Понятно. Профили никак не связаны с windows-аккаунтами. Реестр не используем, хранится все в All User.

Насчет хранения. У нас есть два типа конфигов:
1. Описания профилей.
2. Конфиг пользователя с настройками приложения.

Как они будут разнесены по файлам?
а) описания профилей в All User, конфиг пользователя в своем каталоге
б) все вместе в одном файле в All User
в) другой вариант?

Насчет выбора профилей.
1. Необходимо ли указывать пароль при использовании профилей? Т.е. профили защищены паролем?
2. Можно ли выбирать профиль "по-умолчанию", который загружается автоматически. Если да, то необходимо:
— доработать окно выбора профилей для возможности выбора профиля "по-умолчанию"
— каким-то образом дать пользователю возможность вернуться к этому окну снова (так как оно не будет появляться при запуске).

И вообще, сейчас профилями/запуском кто-нибудь занимается?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re[2]: Профили
От: jenyavb  
Дата: 22.05.09 08:11
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Б>>3. И теперь самое главное. Как задумывалась работа с профилями? Где предполагается хранить профили?

AVK>В All Users профиле.
Стоп. Ты ничего не путаешь? Нафиг в AllUsers? Получается доступ к чьему-либо профилю будет у всех пользователей компьютера. В профиле текущего пользователля — самое место. Только нужно подумаь насчет Local/Roaming данных, что куда разнести.
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[5]: Профили
От: jenyavb  
Дата: 22.05.09 08:32
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Как они будут разнесены по файлам?

Б>а) описания профилей в All User, конфиг пользователя в своем каталоге
Б>б) все вместе в одном файле в All User
Б>в) другой вариант?
Вот статья вики по этой теме: http://projects.rsdn.ru/Janus/wiki/JanusUserFiles

Б>Насчет выбора профилей.

Б>1. Необходимо ли указывать пароль при использовании профилей? Т.е. профили защищены паролем?
Если профили хранить в AppData текущего пользователя — то нафиг не надо.

Б>2. Можно ли выбирать профиль "по-умолчанию", который загружается автоматически. Если да, то необходимо:

Да.

Б>- доработать окно выбора профилей для возможности выбора профиля "по-умолчанию"

Ну там одну кнопку добавить.

Б>- каким-то образом дать пользователю возможность вернуться к этому окну снова (так как оно не будет появляться при запуске).

Сделать в контекстном меню трей-иконки возможность выбора профиля. Можно еще в меню "Файл" сделать пункт.

Б>И вообще, сейчас профилями/запуском кто-нибудь занимается?

Нет. Сейчас вообще почти никто ничем ни занимается...
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[6]: Профили
От: Буравчик Россия  
Дата: 22.05.09 09:54
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Вот статья вики по этой теме: http://projects.rsdn.ru/Janus/wiki/JanusUserFiles


По статье нарисовал дерево каталогов (курсивом выделены файлы):
Documents and Settings
   All User
      Janus
         .All                          // данные, не привязанные к профилю
            ...
         Petya                         // для каждого пользователя свой каталог
             JanusProfile.xml          // описание профиля, настройки пользователя, пароль
             ...
            .Index                     // индексные файлы
               ...
            .ServiceData               // автоматически запоминаемые настройки (положение окон, порядок колонок)
               ...
             Database                  // жесткая привязка к местоположению БД?
               database.file
               ...
         Vasya
            ...


Б>>1. Необходимо ли указывать пароль при использовании профилей? Т.е. профили защищены паролем?

J>Если профили хранить в AppData текущего пользователя — то нафиг не надо.
Надо определиться все таки. В статье про User\AppData ничего нет.
Может вообще не защищать профили паролями? Все зависит от того, как эти профили будут использоваться.

J>Сделать в контекстном меню трей-иконки возможность выбора профиля. Можно еще в меню "Файл" сделать пункт.

Тогда в системе появляются команды типа "открыть профиль", "закрыть профиль", вместо жесткой привязки к одному профилю во время работы. Не знаю насколько трудно это сделать.

Как вариант, можно в настройках добавить пункт "Показывать при запуске окно выбора профиля". Для смены профиля необходимо выйти из программы (предварительно установив галочку, если была сброшены).

Еще вариант. Отказаться от профилей путем сохранения настроек в каталоге программы. Хочешь профиль — скопируй каталог с программой и запусти из него Янус. Не очень хорошая мысль, но как вариант подойдет
Best regards, Буравчик
Re[7]: Профили
От: jenyavb  
Дата: 22.05.09 13:00
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>По статье нарисовал дерево каталогов (курсивом выделены файлы):

Б>
Б>Documents and Settings
Б>   All User
Не надо в AllUsers! :)
Б>      Janus
Б>         .All                          // данные, не привязанные к профилю
Интересно, а что это за данные? :)
Б>         Petya                         // для каждого пользователя свой каталог
Б>             JanusProfile.xml          // описание профиля, настройки пользователя, пароль
AVK вроде хотел хранить их в бинарном виде, а не xml.
Б>            .Index                     // индексные файлы
Б>            .ServiceData               // автоматически запоминаемые настройки (положение окон, порядок колонок)
Это лучше вынести в Local AppData
Б>             .Database                  // жесткая привязка к местоположению БД?
Можно жестко не привязывать, но по-умолчанию здесь.
Б>         Vasya
Б>            ...
Б>


Б>>>1. Необходимо ли указывать пароль при использовании профилей? Т.е. профили защищены паролем?

J>>Если профили хранить в AppData текущего пользователя — то нафиг не надо.
Б>Надо определиться все таки. В статье про User\AppData ничего нет.
Б>Может вообще не защищать профили паролями? Все зависит от того, как эти профили будут использоваться.
Статья это просто набросок.

J>>Сделать в контекстном меню трей-иконки возможность выбора профиля. Можно еще в меню "Файл" сделать пункт.

Б>Тогда в системе появляются команды типа "открыть профиль", "закрыть профиль", вместо жесткой привязки к одному профилю во время работы. Не знаю насколько трудно это сделать.
Надо просто переделать подсистему конфига. Работы по переносу там много, но я могу помочь. Надеюсь и другие помогут.

Б>Как вариант, можно в настройках добавить пункт "Показывать при запуске окно выбора профиля". Для смены профиля необходимо выйти из программы (предварительно установив галочку, если была сброшены).

Б>Еще вариант. Отказаться от профилей путем сохранения настроек в каталоге программы. Хочешь профиль — скопируй каталог с программой и запусти из него Янус. Не очень хорошая мысль, но как вариант подойдет
Это все не потянет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[8]: Профили
От: Буравчик Россия  
Дата: 22.05.09 14:21
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Не надо в AllUsers!


Я согласен.

Б>> JanusProfile.xml // описание профиля, настройки пользователя, пароль

J>AVK вроде хотел хранить их в бинарном виде, а не xml.

Почему?

Б>>Тогда в системе появляются команды типа "открыть профиль", "закрыть профиль", вместо жесткой привязки к одному профилю во время работы. Не знаю насколько трудно это сделать.

J>Надо просто переделать подсистему конфига. Работы по переносу там много, но я могу помочь. Надеюсь и другие помогут.

Переносу чего и куда? В чем заключается переделка конфига?
В общих чертах с конфигом разобрался, но в чем проблема, пока не понял.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218>>
Best regards, Буравчик
Re[9]: Профили
От: jenyavb  
Дата: 22.05.09 14:58
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>>> JanusProfile.xml // описание профиля, настройки пользователя, пароль

J>>AVK вроде хотел хранить их в бинарном виде, а не xml.
Б>Почему?
Это у него нужно спросить.

Б>>>Тогда в системе появляются команды типа "открыть профиль", "закрыть профиль", вместо жесткой привязки к одному профилю во время работы. Не знаю насколько трудно это сделать.

J>>Надо просто переделать подсистему конфига. Работы по переносу там много, но я могу помочь. Надеюсь и другие помогут.
Б>Переносу чего и куда? В чем заключается переделка конфига?
Б>В общих чертах с конфигом разобрался, но в чем проблема, пока не понял.
В его архитектуре. Нужно сделать его раширяемым, избавиться от синглтона и вообще отрефакторить.

Все, дальше я ничего не знаю, пускай AVK рассказывает.
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Re[5]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.05.09 16:59
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Так. Понятно. Профили никак не связаны с windows-аккаунтами. Реестр не используем, хранится все в All User.


Верно

Б>Как они будут разнесены по файлам?

Б>а) описания профилей в All User, конфиг пользователя в своем каталоге
Б>б) все вместе в одном файле в All User
Б>в) другой вариант?

ИМХО вариант а.

Б>Насчет выбора профилей.

Б>1. Необходимо ли указывать пароль при использовании профилей? Т.е. профили защищены паролем?

Бессмысленно.

Б>2. Можно ли выбирать профиль "по-умолчанию", который загружается автоматически.


Да.

Б> Если да, то необходимо:

Б>- доработать окно выбора профилей для возможности выбора профиля "по-умолчанию"

А там разве нет?

Б>- каким-то образом дать пользователю возможность вернуться к этому окну снова (так как оно не будет появляться при запуске).


Внизу чекбокс как раз для этого. Там к нему есть коммент, правда не очень удачно сформулированный.

Б>И вообще, сейчас профилями/запуском кто-нибудь занимается?


Прямо сейчас — видимо нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[7]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.05.09 16:59
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Тогда в системе появляются команды типа "открыть профиль", "закрыть профиль", вместо жесткой привязки к одному профилю во время работы. Не знаю насколько трудно это сделать.


Для этого нужно будет очень серьезно перетряхнуть код. Там одних синглтонов как собак.

Б>Как вариант, можно в настройках добавить пункт "Показывать при запуске окно выбора профиля". Для смены профиля необходимо выйти из программы (предварительно установив галочку, если была сброшены).


Чем не устраивает текущий вариант?

Б>Еще вариант. Отказаться от профилей путем сохранения настроек в каталоге программы.


Вот это точно негодный вариант. Объяснять почему?
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[8]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.05.09 16:59
Оценка:
Здравствуйте, jenyavb, Вы писали:

Б>> JanusProfile.xml // описание профиля, настройки пользователя, пароль

J>AVK вроде хотел хранить их в бинарном виде, а не xml.

AVK хотел хранить в бинарном виде не все настройки, а те данные, которые меняются не из окна настроек. Т.е. всяки положения окон, сплиттеров и т.п.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[3]: Профили
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.05.09 16:59
Оценка:
Здравствуйте, jenyavb, Вы писали:

J>Стоп. Ты ничего не путаешь? Нафиг в AllUsers? Получается доступ к чьему-либо профилю будет у всех пользователей компьютера.


Ну, тут я вроде бы думал, что, возможно, надо дать возможность выбора, хранить в All Users или только у текущего пользователя.

J> В профиле текущего пользователля — самое место. Только нужно подумаь насчет Local/Roaming данных, что куда разнести.


По идее, там все должно быть roaming, кроме, может быть, размера окон. Но БД штука довольно объемная, так что тут могут быть проблемы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[4]: Профили
От: jenyavb  
Дата: 22.05.09 17:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

J>>Стоп. Ты ничего не путаешь? Нафиг в AllUsers? Получается доступ к чьему-либо профилю будет у всех пользователей компьютера.

AVK>Ну, тут я вроде бы думал, что, возможно, надо дать возможность выбора, хранить в All Users или только у текущего пользователя.
А зачем в AllUsers хранить?

J>> В профиле текущего пользователля — самое место. Только нужно подумаь насчет Local/Roaming данных, что куда разнести.

AVK>По идее, там все должно быть roaming, кроме, может быть, размера окон.
Еще размеры колонок грида, положения сплиттеров. Вообще это лучше в процентах хранить, но винформс этого не умеет, а делать самому — гемор еще тот.

AVK> Но БД штука довольно объемная, так что тут могут быть проблемы.

Да уж, гонять её по сети может быть не просто .
... << RSDN@Home 1.2.0 alpha 4 rev. 1217>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.