Использование Plone 4 и pas.plugins.sqlalchemy со многими пользователями - PullRequest
4 голосов
/ 18 мая 2011

Я использую pas.plugins.sqlalchemy , чтобы предоставить серверную часть СУБД для аутентификации и хранения данных члена, используя MySQL.Аутентификация работает отлично, а данные о членах правильно хранятся и извлекаются в СУБД.Текущие пользователи старше 20.000

Однако перечисление пользователей занимает много времени.Я проверил " Много пользователей " в разделе Панель управления Plone / Пользователи и группы , но даже простой поиск пользователей занимает почти бесконечное количество времени.Отладив скрипт plugin.py , я заметил, что enumerateUsers () вызывается столько раз, сколько хранится пользователей;поэтому для выполнения простого поискового запроса требуется огромное количество процессорного времени, так как запрос сопоставляется с каждым именем пользователя, одним пользователем за раз, одним запросом за раз.Я что-то здесь упускаю?Разве pas.plugins.sqlalchemy бесполезен, особенно если у вас очень большое количество пользователей?В настоящее время у меня есть плагин sql в качестве главного приоритета в моей настройке * acl_users / plugins / User Enumeration *.Должен ли я изменить это?

1 Ответ

5 голосов
/ 19 мая 2011

Я в значительной степени унаследовал обслуживание pas.plugins.sqlalchemy, но лично я не использовал его для более чем нескольких пользователей.Если вы отправите сообщение об ошибке на https://github.com/auspex/pas.plugins.sqlalchemy/issues,, я посмотрю, что я могу сделать.

Я не думаю, что может иметь большое значение, в каком порядке происходит перечисление - оно все равно должно перечислять всех пользователей в базе данных SQL.Так что он или делает их до тех, которые найдены в ZODB, или после.Это звучит , как будто проблема начинается с Zope - вызов enumerateUsers () один раз для каждого пользователя кажется чрезмерным - но даже в этом случае нет необходимости делать запрос к реляционному дБ для каждого перечисления.

...