Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
f08788e
Beginning of user list api endpoint for #3614
raprasad May 31, 2017
4df733c
#3614 work on the initial native query for user info excluding roles …
raprasad Jun 1, 2017
92701e3
#3614, filter param for basic query
raprasad Jun 1, 2017
85d7979
move biz logic to another class #3614
raprasad Jun 1, 2017
4b98b38
#3614 pagination working for api call. example url with 14k+ users h…
raprasad Jun 1, 2017
8864bfc
#3614 basic UI w/ @pdurbin's basic .xhtml page/properties. need to h…
raprasad Jun 1, 2017
aafa1c1
#3614 paging working, fast but abrupt
raprasad Jun 1, 2017
d2bcdd9
basics are in #3614
raprasad Jun 1, 2017
cc045a2
#3614 bundlized table headers, added commas to result number
raprasad Jun 1, 2017
a7bde8a
add button, counts on dashboard to manage users #3614
pdurbin Jun 1, 2017
7475cd4
hide JSON by turning off debugging #3614
pdurbin Jun 1, 2017
0b6bab0
minor tweaks including adding column id, pluralizing the 'displaying:…
raprasad Jun 1, 2017
91fe835
Merge branch '3614-user-list' of github.com:IQSS/dataverse into 3614-…
raprasad Jun 1, 2017
13f7ca5
#3614 - proof of concept of dropping prime faces table over Raman's c…
sekmiller Jun 5, 2017
f6e2371
Updated Guides [ref: #3614]
dlmurphy Jun 5, 2017
791a039
#3614 - converting to non-JSON version....
raprasad Jun 5, 2017
4d61846
Merge branch '3614-user-list' of github.com:IQSS/dataverse into 3614-…
raprasad Jun 5, 2017
d7bd050
more work on #3614'
raprasad Jun 5, 2017
88e33ed
#3614 Cleanup Table Headings/Display
sekmiller Jun 5, 2017
30f4c47
Merge branch 'develop' into 3614-user-list
sekmiller Jun 6, 2017
492ae99
#3614 wire up search term update
sekmiller Jun 6, 2017
bd294a1
#3614 fix search formatting
sekmiller Jun 6, 2017
c9a8bbf
#3614 Add search button fix formatting
sekmiller Jun 6, 2017
0fafd29
new object for user info #3614
raprasad Jun 6, 2017
44d1e5f
#3614 method to integrate SingleUserView objects
raprasad Jun 6, 2017
f330552
add method so setParameter doesn't differ between count/retrieve quer…
raprasad Jun 6, 2017
f4e6b54
#3614 subsitute SingleUserView object for array
raprasad Jun 6, 2017
a912dcf
comment for #3614
raprasad Jun 6, 2017
c562bd2
#3614 Add Roles to user table
sekmiller Jun 6, 2017
554565d
#3614 pager info. needs to be linked to selected page
raprasad Jun 6, 2017
abde32d
page .xhtml (should have been added to earlier commit #3614
raprasad Jun 7, 2017
20386bb
#3614 Add Transient Fields to Auth User for display
sekmiller Jun 7, 2017
51546aa
Merge branch 'develop' into 3614-user-list
sekmiller Jun 7, 2017
a81e657
#3614 - Remove Single User View
sekmiller Jun 7, 2017
2de92ea
#3614 working page'
raprasad Jun 7, 2017
2719444
#3614 Cleanup user search query code
sekmiller Jun 7, 2017
e2668e8
Merge branch 'develop' into 3614-user-list
sekmiller Jun 7, 2017
656e60b
#3614 - add built-in user info to query
raprasad Jun 7, 2017
32b129a
#3614 added provider info to intial query
raprasad Jun 7, 2017
b58f467
#3614, update, thought wasn't working but it was bad data
raprasad Jun 7, 2017
349d6a2
#3614, add auth provider to column
raprasad Jun 7, 2017
635335a
#3614 - updated. bad query that need parens
raprasad Jun 7, 2017
dd5bd75
#3614, retrieve roles in a single query. but not yet integrated into…
raprasad Jun 7, 2017
5108e48
A simple implementation of the superuser status toggle, via a checkbo…
landreev Jun 8, 2017
0b81d79
convenience class for returning results #3614
raprasad Jun 9, 2017
b05f844
#3614, work to consolidate biz logic
raprasad Jun 9, 2017
b6807a4
#3614, further consolidation of biz logic. need to finish API part
raprasad Jun 9, 2017
ef28396
placeholder for formatting users as JSON list #3614
raprasad Jun 9, 2017
8806324
updates for role retrieval. appears to work on ui--but paging is off…
raprasad Jun 9, 2017
bfd4101
#3614. user count query now in sync with user retrieval query--fixing…
raprasad Jun 9, 2017
610c48d
remove print stmt #3614
raprasad Jun 9, 2017
27329be
#3614 Add toJson to Authenticated Users class for api
sekmiller Jun 9, 2017
c25ce82
Modified the superuser toggling, added a confirmation popup;
landreev Jun 9, 2017
8f34b0f
#3614 nullsafejsonbuilder in AuthenticatedUser.java; add apikey to ad…
raprasad Jun 9, 2017
8dc5dbe
add deprecated take to previous endpoint for listing users--e.g. that…
raprasad Jun 9, 2017
4854b5c
#3614 convenience method for adding commans to startCardNumber and en…
raprasad Jun 9, 2017
c8813b5
Cleaned up UI of Manage Users pg. [ref #3614]
mheppler Jun 9, 2017
a9b513e
cleaning up cruft #3614
raprasad Jun 12, 2017
23a2910
#3614 - removing more cruft. add bundle for user list page header
raprasad Jun 12, 2017
eae1818
#3614, updates from code review
raprasad Jun 13, 2017
f1d0f7f
Added a query.setParameter() to pass the search term to the native qu…
landreev Jun 13, 2017
8c85514
Added native queries (two, per page load) to look up user roles assig…
landreev Jun 21, 2017
4feb4a6
Added recursion to the native query that looks up role assignments in…
landreev Jun 21, 2017
7ec0cc3
Merge remote-tracking branch 'origin/develop' into 3614-user-list
raprasad Jun 23, 2017
03dc40d
removed unused method and method rename. part of review for #3614
raprasad Jun 23, 2017
5e887ed
left out of last commit--needed for compile #3614
raprasad Jun 23, 2017
685e352
remove row number for the api results #3614
raprasad Jun 23, 2017
18326e4
clean-up of api auth #3614
raprasad Jun 23, 2017
4f6ec8e
remove US local from number formatting #3614
raprasad Jun 23, 2017
91ee5dc
change asJSON to toJSON #3614
raprasad Jun 23, 2017
9371c46
Minor layout clean up for Manage Users pg. [ref #3614]
mheppler Jun 23, 2017
e5db009
Removed rows attribute from dataTable on Manage Users pg. [ref #3614]
mheppler Jun 23, 2017
b7e3331
Merge remote-tracking branch 'origin/develop' into 3614-user-list
raprasad Jun 26, 2017
c8999dd
beginning of testing for #3614
raprasad Jun 26, 2017
5906feb
#3614, work toward tests
raprasad Jun 26, 2017
6e5d197
code review updates, review 'rowNum' column for list users as well as…
raprasad Jun 26, 2017
21f1ba1
work for user list tests #3614
raprasad Jun 26, 2017
bd5b723
Per code review with Gustavo, the current user admin user viewing the…
landreev Jun 26, 2017
902daea
explain that Glassfish must be run in English locale #2620
pdurbin Jun 27, 2017
969f0a5
#3614 switch count to native query. document attempt at setParameter …
raprasad Jun 27, 2017
f4d0d51
Merge branch '3614-user-list' of github.com:IQSS/dataverse into 3614-…
raprasad Jun 27, 2017
ad373e3
merge with develop
raprasad Jun 27, 2017
9356858
typo #3964
pdurbin Jun 27, 2017
fce05c8
document :ZipDownloadLimit #3857
pdurbin Jun 27, 2017
22e6208
fix description of :CloudEnvironmentName #3847
pdurbin Jun 27, 2017
c4f34df
add note about showAttributeValues #3649
pdurbin Jun 27, 2017
375e4b8
document :StatusMessageText #2944
pdurbin Jun 27, 2017
7a25089
remove mod time. #3614
raprasad Jun 27, 2017
bf6994c
Proofread of new text #2620
dlmurphy Jun 27, 2017
66c30c7
An API token is sometimes called a key #1293
pdurbin Jun 28, 2017
f1166a7
update to saving the superuser. retrieve the persistent Authenticate…
raprasad Jun 28, 2017
2594f40
Merge branch '3614-user-list' of github.com:IQSS/dataverse into 3614-…
raprasad Jun 28, 2017
2bcef31
Added conditional style, icon for Superuser to Manage Users pg. [ref …
mheppler Jun 28, 2017
d24fa0a
Per Gustavo's code review request, added commands for granting and re…
landreev Jun 29, 2017
4abb4e9
Per Gustavo's code review request, added commands for granting and re…
landreev Jun 29, 2017
6d73408
#3614 bundles for friendly AuthenticationProvider names
raprasad Jun 29, 2017
c9d7a64
Merge branch '3614-user-list' of github.com:IQSS/dataverse into 3614-…
raprasad Jun 29, 2017
f32940e
add test for AuthenticationProvider bundle names #3614
raprasad Jun 29, 2017
6e59762
merge with develop #3614
raprasad Jun 29, 2017
08f2c11
Minor table column width adjustments on Manage Users pg. [ref #3614]
mheppler Jun 29, 2017
398ae12
Revised popup header text on Manage Users pg. [ref #3614]
mheppler Jun 29, 2017
3dc7f62
Dialed back logging in user page #3614 #3612
bsilverstein95 Jun 29, 2017
a10749b
Merge remote-tracking branch 'origin/develop' into 3614-user-list
raprasad Jul 3, 2017
efed447
#3614 add API docs, additional bundle strings for API
raprasad Jul 3, 2017
6db219c
#3614, updated attribute names to not use 'card' terminology. e.g. '…
raprasad Jul 3, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPConfiguration
<Handler type="Status" Location="/Status" acl="127.0.0.1"/>

<!-- Session diagnostic service. -->
<!-- showAttributeValues must be set to true to see attributes at /Shibboleth.sso/Session . -->
<Handler type="Session" Location="/Session" showAttributeValues="true"/>

<!-- JSON feed of discovery information. -->
Expand Down
4 changes: 4 additions & 0 deletions doc/sphinx-guides/source/admin/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,8 @@ These "superuser" tasks are managed via the new page called the Dashboard. A use
metadataexport
timers
geoconnect-worldmap
user-administration
solr-search-index
monitoring
maintenance
troubleshooting
9 changes: 9 additions & 0 deletions doc/sphinx-guides/source/admin/maintenance.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Maintenance
===========

.. contents:: Contents:
:local:

When you have scheduled down time for your production servers, we provide a :download:`sample maintenance page <../_static/installation/files/etc/maintenance/maintenance.xhtml>` for you to use. To download, right-click and select "Save Link As".

The maintenance page is intended to be a static page served by Apache to provide users with a nicer, more informative experience when the site is unavailable.
11 changes: 11 additions & 0 deletions doc/sphinx-guides/source/admin/monitoring.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Monitoring
===========

.. contents:: Contents:
:local:

In production you'll want to monitor the usual suspects such as CPU, memory, free disk space, etc.

https://github.com/IQSS/dataverse/issues/2595 contains some information on enabling monitoring of Glassfish, which is disabled by default.

There is a database table called ``actionlogrecord`` that captures events that may be of interest. See https://github.com/IQSS/dataverse/issues/2729 for more discussion around this table.
47 changes: 47 additions & 0 deletions doc/sphinx-guides/source/admin/solr-search-index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
Solr Search Index
=================

Dataverse requires Solr to be operational at all times. If you stop Solr, you should see a error about this on the home page, which is powered by the search index Solr provides. You can set up Solr by following the steps in our Installation Guide's :doc:`/installation/prerequisites` and :doc:`/installation/config` sections explaining how to configure it. This section you're reading now is about the care and feeding of the search index. PostgreSQL is the "source of truth" and the Dataverse application will copy data from PostgreSQL into Solr. For this reason, the search index can be rebuilt at any time. Depending on the amount of data you have, this can be a slow process. You are encouraged to experiment with production data to get a sense of how long a full reindexing will take.

.. contents:: Contents:
:local:

Full Reindex
-------------

There are two ways to perform a full reindex of the Dataverse search index. Starting with a "clear" ensures a completely clean index but involves downtime. Reindexing in place doesn't involve downtime but does not ensure a completely clean index.

Clear and Reindex
+++++++++++++++++

Clearing Data from Solr
~~~~~~~~~~~~~~~~~~~~~~~

Please note that the moment you issue this command, it will appear to end users looking at the home page that all data is gone! This is because the home page is powered by the search index.

``curl http://localhost:8080/api/admin/index/clear``

Start Async Reindex
~~~~~~~~~~~~~~~~~~~

Please note that this operation may take hours depending on the amount of data in your system. This known issue is being tracked at https://github.com/IQSS/dataverse/issues/50

``curl http://localhost:8080/api/admin/index``

Reindex in Place
+++++++++++++++++

An alternative to completely clearing the search index is to reindex in place.

Clear Index Timestamps
~~~~~~~~~~~~~~~~~~~~~~

``curl -X DELETE http://localhost:8080/api/admin/index/timestamps``

Start or Continue Async Reindex
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If indexing stops, this command should pick up where it left off based on which index timestamps have been set, which is why we start by clearing these timestamps above. These timestamps are stored in the ``dvobject`` database table.

``curl http://localhost:8080/api/admin/index/continue``

12 changes: 11 additions & 1 deletion doc/sphinx-guides/source/admin/troubleshooting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,19 @@ Troubleshooting

This new (as of v.4.6) section of the Admin guide is for tips on how to diagnose and fix system problems.

.. contents:: |toctitle|
.. contents:: Contents:
:local:

Glassfish
---------

``server.log`` is the main place to look when you encounter problems. Hopefully an error message has been logged. If there's a stack trace, it may be of interest to developers, especially they can trace line numbers back to a tagged version.

For debugging purposes, you may find it helpful to increase logging levels as mentioned in the :doc:`/developers/debugging` section of the Developer Guide.

Our guides focus on using the command line to manage Glassfish but you might be interested in an admin GUI at http://localhost:4848


Deployment fails, "EJB Timer Service not available"
---------------------------------------------------

Expand Down
39 changes: 39 additions & 0 deletions doc/sphinx-guides/source/admin/user-administration.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
User Administration
===================

This section focuses on user administration tools and tasks.

.. contents:: Contents:
:local:

Manage Users Table
------------------

The Manage Users table gives the network administrator a list of all user accounts in table form. It lists username, full name, email address, and whether or not the user has Superuser status.

Usernames are listed alphabetically and clicking on a username takes you to the account page that contains detailed information on that account.

You can access the Manage Users table by clicking the "Manage Users" button on the Dashboard, which is linked from the header of all Dataverse pages (if you're loggied in as an administrator).

Confirm Email
-------------

Dataverse encourages builtin/local users to verify their email address upon signup or email change so that sysadmins can be assured that users can be contacted.

The app will send a standard welcome email with a URL the user can click, which, when activated, will store a ``lastconfirmed`` timestamp in the ``authenticateduser`` table of the database. Any time this is "null" for a user (immediately after signup and/or changing of their Dataverse email address), their current email on file is considered to not be verified. The link that is sent expires after a time (the default is 24 hours), but this is configurable by a superuser via the ``:MinutesUntilConfirmEmailTokenExpires`` config option.

Should users' URL token expire, they will see a "Verify Email" button on the account information page to send another URL.

Sysadmins can determine which users have verified their email addresses by looking for the presence of the value ``emailLastConfirmed`` in the JSON output from listing users (see the "Admin" section of the :doc:`/api/native-api`). As mentioned in the :doc:`/user/account` section of the User Guide, the email addresses for Shibboleth users are re-confirmed on every login.

Deleting an API Token
---------------------

If an API token is compromised it should be deleted. Users can generate a new one for themselves as explained in the :doc:`/user/account` section of the User Guide, but you may want to preemptively delete tokens from the database.

Using the API token 7ae33670-be21-491d-a244-008149856437 as an example:

``delete from apitoken where tokenstring = '7ae33670-be21-491d-a244-008149856437';``

You should expect the output ``DELETE 1`` after issuing the command above.

2 changes: 1 addition & 1 deletion doc/sphinx-guides/source/api/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ We use the term "native" to mean that the API is not based on any standard. For
Authentication
--------------

Most Dataverse APIs require the use of an API token. Instructions for getting a token are described in the :doc:`/user/account` section of the User Guide.
Most Dataverse APIs require the use of an API token. (In code we sometimes call it a "key" because it's shorter.) Instructions for getting a token are described in the :doc:`/user/account` section of the User Guide.

There are two ways to pass your API token to Dataverse APIs. The preferred method is to send the token in the ``X-Dataverse-key`` HTTP header, as in the following curl example::

Expand Down
105 changes: 103 additions & 2 deletions doc/sphinx-guides/source/api/native-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -559,9 +559,110 @@ Creates a global role in the Dataverse installation. The data POSTed are assumed

POST http://$SERVER/api/admin/roles

List all users::
List users with the options to search and "page" through results. Only accessible to superusers. Optional parameters:

* ``searchTerm`` A string that matches the beginning of a user identifier, first name, last name or email address.
* ``itemsPerPage`` The number of detailed results to return. The default is 25. This number has no limit. e.g. You could set it to 1000 to return 1,000 results
* ``selectedPage`` The page of results to return. The default is 1.

GET http://$SERVER/api/admin/list-users


Sample output appears below.

* When multiple pages of results exist, the ``selectedPage`` parameters may be specified.
* Note, the resulting ``pagination`` section includes ``pageCount``, ``previousPageNumber``, ``nextPageNumber``, and other variables that may be used to re-create the UI.

.. code-block:: json

{
"status":"OK",
"data":{
"userCount":27,
"selectedPage":1,
"pagination":{
"isNecessary":true,
"numResults":27,
"numResultsString":"27",
"docsPerPage":25,
"selectedPageNumber":1,
"pageCount":2,
"hasPreviousPageNumber":false,
"previousPageNumber":1,
"hasNextPageNumber":true,
"nextPageNumber":2,
"startResultNumber":1,
"endResultNumber":25,
"startResultNumberString":"1",
"endResultNumberString":"25",
"remainingResults":2,
"numberNextResults":2,
"pageNumberList":[
1,
2
]
},
"bundleStrings":{
"userId":"ID",
"userIdentifier":"Username",
"lastName":"Last Name ",
"firstName":"First Name ",
"email":"Email",
"affiliation":"Affiliation",
"position":"Position",
"isSuperuser":"Superuser",
"authenticationProvider":"Authentication",
"roles":"Roles",
"createdTime":"Created Time",
"lastLoginTime":"Last Login Time",
"lastApiUseTime":"Last API Use Time"
},
"users":[
{
"id":8,
"userIdentifier":"created1",
"lastName":"created1",
"firstName":"created1",
"email":"created1@g.com",
"affiliation":"hello",
"isSuperuser":false,
"authenticationProvider":"BuiltinAuthenticationProvider",
"roles":"Curator",
"createdTime":"2017-06-28 10:36:29.444"
},
{
"id":9,
"userIdentifier":"created8",
"lastName":"created8",
"firstName":"created8",
"email":"created8@g.com",
"isSuperuser":false,
"authenticationProvider":"BuiltinAuthenticationProvider",
"roles":"Curator",
"createdTime":"2000-01-01 00:00:00.0"
},
{
"id":1,
"userIdentifier":"dataverseAdmin",
"lastName":"Admin",
"firstName":"Dataverse",
"email":"dataverse@mailinator2.com",
"affiliation":"Dataverse.org",
"position":"Admin",
"isSuperuser":true,
"authenticationProvider":"BuiltinAuthenticationProvider",
"roles":"Admin, Contributor",
"createdTime":"2000-01-01 00:00:00.0",
"lastLoginTime":"2017-07-03 12:22:35.926",
"lastApiUseTime":"2017-07-03 12:55:57.186"
},
**... 22 more user documents ...**
]
}
}

.. note:: "List all users" ``GET http://$SERVER/api/admin/authenticatedUsers`` is deprecated, but supported.

GET http://$SERVER/api/admin/authenticatedUsers

List user whose ``identifier`` (without the ``@`` sign) is passed::

Expand Down
104 changes: 0 additions & 104 deletions doc/sphinx-guides/source/installation/administration.rst

This file was deleted.

Loading