%PDF- %PDF-
| Direktori : /home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/ |
| Current File : //home/waritko/jetty-distribution-9.4.21.v20190926/webapps/ROOT/templates/getusers.vm |
#macro (displayUserAliasWithAvatar $userReference $disabled)
<div class="user#if ($disabled) disabled#end" data-reference="$escapetool.xml($userReference)">
<span class="user-avatar-wrapper">
#getUserAvatarURL($userReference $avatarURL 120)
<img class="user-avatar" src="$escapetool.xml($avatarURL.url)" />
</span>
<a href="$xwiki.getURL($userReference)">$escapetool.xml($userReference.name)</a>
</div>
#end
#### get all the request parameters which are filters
#set ($params = $request.getParameterMap())
#set ($keys = $params.keySet())
#set ($defaultKeys = ["xpage", "offset", "limit", "wiki", "reqNo", "sort", "dir"])
#set ($docProps = ["fullName", "name"])
#set ($filterMap = {})
#set ($orderList = [])
#foreach ($key in $keys)
#if (! $defaultKeys.contains( $key ) )
## build the filters map
#foreach ($i in $params.get($key)) #set ($value = $i) #end
#if ($docProps.contains($key))
#set ($arr = [])
#set ($discard = $arr.add($NULL)) ## this may be variable...
#set ($discard = $arr.add("$value"))
#set ($discard = $filterMap.put("$key", $arr))
#set ($discard = $orderList.add("$key"))
#else
#set ($arr = [])
#set ($discard = $arr.add("StringProperty")) ## this may be variable...
#set ($discard = $arr.add("$value"))
#set ($discard = $filterMap.put("$key", $arr))
#set ($arr2 = [])
#set ($discard = $arr2.add("$key"))
#set ($discard = $arr2.add("StringProperty"))
#set ($discard = $orderList.add($arr2))
#end
#end
#end
#if ($orderList.isEmpty())
#set ($discard = $orderList.add('name'))
#end
#set ($usersService = $xwiki.rightsmanager.usersApi)
#set ($offset = $mathtool.toInteger($request.get('offset')))
#set ($limit = $mathtool.toInteger($request.get('limit')))
## If the Rights Manager Plugin is not enabled, then return an empty JSON result.
#if ("$!usersService" != '')
## The live table offset starts from 1 so we need to subtract 1.
#if ($request.wiki == 'local')
#set ($users = $usersService.getAllMatchedLocalUsers($filterMap, $limit, $mathtool.sub($offset, 1), $orderList))
#set ($countUsers = $usersService.countAllMatchedLocalUsers($filterMap))
#elseif ($request.wiki == 'global')
#set ($users = $usersService.getAllMatchedGlobalUsers($filterMap, $limit, $mathtool.sub($offset, 1), $orderList))
#set ($countUsers = $usersService.countAllMatchedGlobalUsers($filterMap))
#else
## Get both local and global users.
#set ($users = $usersService.getAllMatchedUsers($filterMap, $limit, $mathtool.sub($offset, 1), $orderList))
#set ($countUsers = $usersService.countAllMatchedUsers($filterMap))
#end
#else
#set ($users = [])
#set ($countUsers = 0)
#end
#set ($data = {
'totalrows': $countUsers,
'returnedrows': $mathtool.min($countUsers, $limit),
'offset': $offset,
'reqNo': $mathtool.toInteger($request.reqNo),
'rows': []
})
#foreach ($user in $users)
#set ($grayed = $xcontext.user == $user.fullName)
#set ($wikiName = $user.wiki)
#if ($wikiName != $xcontext.mainWikiName || $wikiName == $xcontext.database)
#set ($wikiName = 'local')
#end
#set ($userObject = $user.getObject('XWiki.XWikiUsers'))
## Deprecated properties kept for backward compatibility with XWiki versions older than 10.9
#set ($row = {
'username': $user.documentReference.name,
'fullname': $user.fullName,
'wikiname': $wikiName,
'firstname': $userObject.getValue('first_name'),
'lastname': $userObject.getValue('last_name'),
'userurl': $user.getURL(),
'usersaveurl': $user.getURL('save'),
'userinlineurl': $user.getURL('edit', 'xpage=edituser'),
'docurl': $xwiki.getURL('XWiki.XWikiPreferences', 'admin', 'section=Users'),
'grayed': $grayed
})
#if ($user.wiki == $xcontext.mainWikiName)
#set ($scope = 'global')
#else
#set ($scope = 'local')
#end
#set ($hasEdit = $services.security.authorization.hasAccess('edit', $user.documentReference))
#set ($disabled = $xwiki.getUser($user.documentReference).isDisabled())
#set ($hasEnable = $hasEdit && $disabled)
## Prevent users from disabling their own accounts.
#set ($hasDisable = $hasEdit && !$disabled && $xcontext.userReference != $user.documentReference)
## Delete user accounts only after they have been disabled. Also prevent users from deleting their own accounts.
#set ($hasDelete = $disabled && $xcontext.userReference != $user.documentReference
&& $services.security.authorization.hasAccess('delete', $user.documentReference))
#set ($discard = $row.putAll({
'doc_fullName': $user.fullName,
'doc_wiki': $user.wiki,
'doc_url': $user.getURL(),
'doc_viewable': $services.security.authorization.hasAccess('view', $user.documentReference),
'doc_hasadmin': $xwiki.hasAdminRights(),
'doc_hasedit': $hasEdit,
'doc_edit_url': $user.getURL('edit'),
'doc_hasdelete': $hasDelete,
'doc_delete_url': $user.getURL('delete'),
'doc_hasdisable': $hasDisable,
'doc_disable_url': $user.getURL('save', $escapetool.url({
'XWiki.XWikiUsers_0_active': 0,
'comment': $services.localization.render('core.users.disable.saveComment'),
'form_token': $services.csrf.token
})),
'doc_hasenable': $hasEnable,
'doc_enable_url': $user.getURL('save', $escapetool.url({
'XWiki.XWikiUsers_0_active': 1,
'comment': $services.localization.render('core.users.enable.saveComment'),
'form_token': $services.csrf.token
})),
'name': "#displayUserAliasWithAvatar($user.documentReference $disabled)",
'first_name': $userObject.getValue('first_name'),
'last_name': $userObject.getValue('last_name'),
'scope': $services.localization.render("xe.admin.groups.$scope")
}))
#set ($discard = $data.rows.add($row))
#end
#jsonResponse($data)