我们正在使用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';
但是这个Velocity代码没有:
<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].
出了什么问题?任何帮助都将非常感激!
罗布 :)
答案 0 :(得分:0)
我对这个cms一无所知,但我认为速度与你传递的参数不一样。 Velocity没有“null”概念,这些内联数组也可能不受欢迎。
我认为您需要在服务器端获取这些用户,然后准备将对象显示为速度。这就是模板引擎的用途 - 显示数据,而不是检索数据。
答案 1 :(得分:0)
得到答案 - 感谢Paul P.:)
#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. $cmsuser.searchUsersAndUsersProxy()的Javadoc显示该方法的参数。
注意2.在这种情况下(dotCMS 1.7),pageSize arg(final int - 页面中显示的元素数)不遵循dotCMS约定,即0确实意味着0!通常它意味着“没有限制”。
注意3.第五个参数(showUserGroups)应为false或我将获得重复(如在完全连接中)。