summaryrefslogtreecommitdiffstats
path: root/frontend/src/UserList.js
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@eficode.com>2020-02-05 19:25:36 +0200
committerJan Tuomi <jan.tuomi@eficode.com>2020-02-05 19:25:36 +0200
commit71d9490d0988c97b8b023a70e0b61c65f32ad3b9 (patch)
treedf6f3db2c1f3c3ef9339843431a79197b465a74c /frontend/src/UserList.js
parent48a60c896d86de9bf76806ca60da35ef9f77259e (diff)
Implement permissions
Diffstat (limited to 'frontend/src/UserList.js')
-rw-r--r--frontend/src/UserList.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/frontend/src/UserList.js b/frontend/src/UserList.js
new file mode 100644
index 0000000..dd17ace
--- /dev/null
+++ b/frontend/src/UserList.js
@@ -0,0 +1,56 @@
+import React, { useEffect, useState } from 'react';
+import axios from './axios';
+
+const UserList = () => {
+ const [ data, setData ] = useState({});
+ useEffect(() => {
+ (async () => {
+ try {
+ const resp = await axios.get('/users');
+ setData({
+ users: resp.data.users,
+ });
+ } catch (err) {
+ if (err.response.status === 401) {
+ setData({
+ error: err.response.data.error,
+ });
+ } else {
+ throw err;
+ }
+ }
+ })();
+ }, []);
+
+ const users = data.users;
+ const userRows = !!users
+ ? users.map(user => (
+ <tr key={user.id}>
+ <td>{user.id}</td>
+ <td>{user.username}</td>
+ </tr>
+ ))
+ : null;
+
+ return (
+ <div>
+ <h2 className="subtitle">User list</h2>
+ <div>
+ <div className="error" key="error">
+ {data.error}
+ </div>
+ <table className="table">
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Username</th>
+ </tr>
+ </thead>
+ <tbody>{userRows}</tbody>
+ </table>
+ </div>
+ </div>
+ );
+};
+
+export default UserList;