Получение адресов электронной почты всех пользователей с ролью администратора - PullRequest
0 голосов
/ 22 сентября 2010

Мы используем dotCMS 1.7a, и мне сложно получить адреса электронной почты пользователей в роли администратора.

Этот SQL работает:

   select user_.emailaddress
   from user_
   INNER JOIN users_roles
   ON users_roles.userid = user_.userid
   INNER JOIN role_
   ON users_roles.roleid = role_.roleid
   where role_.name = 'Administrator';

Но этот код скорости не:

   <p>Start</p>
   #set($found = $cmsuser.searchUsersAndUsersProxy(null, null, null, [], true,
   ["Administrator"], true, null, 1, 0))
   <p>Finish</p>
   <p>Found: $found [$found.size()].</p>
   #set($theUsers = $found.get("users"))
   <p>Got theUsers: $theUsers [$theUsers.size()].</p>

Вывод вышеуказанного кода:

   Start
   Finish
   Found: {total=22, usersProxy=[], users=[], groupNames=[], roleNames=[]} [5].
   Got theUsers: [] [0].

Что не так? Любая помощь будет наиболее ценной!

Rob :)

Ответы [ 2 ]

0 голосов
/ 24 сентября 2010

Получил ответ - спасибо Полу П.:)

#set($found = $cmsuser.searchUsersAndUsersProxy(null, null, null, [], false,
["Administrator"], true, null, 1, 1000))
<p>Found $found.get("users").size() Administrator users.</p>
#set($theUsers = $found.get("users"))
#foreach ($user in $theUsers)
$user.fullName ($user.emailAddress)<br>
#end

Примечание 1. В Javadocs для $ cmsuser.searchUsersAndUsersProxy () показаны параметры для этого метода.

Примечание 2. В этом случае (dotCMS 1.7) аргумент pageSize (final int - номер элемента, отображаемого на странице) не соответствует соглашению dotCMS, т.е. 0 действительно означает 0! Обычно это означает «без ограничений».

Примечание 3. Пятый параметр (showUserGroups) должен иметь значение false, иначе я получу дубликаты (как при полном объединении).

0 голосов
/ 22 сентября 2010

Я ничего не знаю об этих cms, но я думаю, что скорости не нравятся те параметры, которые вы передаете.Velocity не имеет понятия «ноль», и эти встроенные массивы, вероятно, также не приветствуются.

Я думаю, что вам нужно получить этих пользователей на стороне сервера, а затем перейти к готовности отображать объекты со скоростью.Это как раз то, для чего нужен шаблонизатор - для отображения данных, а не для их извлечения.

...