API & Client - add/remove user admin rights - #15

This commit is contained in:
Sam
2020-05-01 12:12:48 +02:00
parent aa29231fd9
commit 7cc1b40f26
10 changed files with 320 additions and 27 deletions

View File

@ -15,7 +15,7 @@ class AdminUsers extends React.Component {
}
render() {
const { message, t, users } = this.props
const { message, t, updateUser, authUser, users } = this.props
return (
<div>
<Helmet>
@ -26,7 +26,7 @@ class AdminUsers extends React.Component {
<div className="row">
<div className="col card">
<div className="card-body">
<table className="table">
<table className="table user-table">
<thead>
<tr>
<th>#</th>
@ -35,6 +35,7 @@ class AdminUsers extends React.Component {
<th>{t('user:Registration Date')}</th>
<th>{t('activities:Activities')}</th>
<th>{t('user:Admin')}</th>
<th>{t('administration:Actions')}</th>
</tr>
</thead>
<tbody>
@ -79,6 +80,23 @@ class AdminUsers extends React.Component {
/>
)}
</td>
<td>
<input
type="submit"
className={`btn btn-${
user.admin ? 'dark' : 'primary'
} btn-sm`}
disabled={user.username === authUser.username}
value={
user.admin
? t('administration:Remove')
: t('administration:Add')
}
onClick={() =>
updateUser(user.username, !user.admin)
}
/>
</td>
</tr>
))}
</tbody>
@ -101,11 +119,16 @@ class AdminUsers extends React.Component {
export default connect(
state => ({
message: state.message,
authUser: state.user,
users: state.users.data,
}),
dispatch => ({
loadUsers: () => {
dispatch(getOrUpdateData('getData', 'users'))
},
updateUser: (userName, isAdmin) => {
const data = { username: userName, admin: isAdmin }
dispatch(getOrUpdateData('updateData', 'users', data, false))
},
})
)(AdminUsers)

View File

@ -499,6 +499,10 @@ label {
padding: 0.1em;
}
.user-table {
font-size: 0.9em;
}
/* calendar */
:root {
--main-color: #1a8fff;

View File

@ -94,27 +94,36 @@ function ProfileDetail({
}
className="img-fluid App-profile-img-small"
/>
<br />
<button type="submit" onClick={() => onDeletePicture()}>
{t('user:Delete picture')}
</button>
<br />
<br />
{editable && (
<>
<br />
<button
type="submit"
onClick={() => onDeletePicture()}
>
{t('user:Delete picture')}
</button>
<br />
<br />
</>
)}
</div>
)}
<form
encType="multipart/form-data"
onSubmit={event => onUploadPicture(event)}
>
<input
type="file"
name="picture"
accept=".png,.jpg,.gif"
/>
<br />
<button type="submit">{t('user:Send')}</button>
{` (max. size: ${fileSizeLimit})`}
</form>
{editable && (
<form
encType="multipart/form-data"
onSubmit={event => onUploadPicture(event)}
>
<input
type="file"
name="picture"
accept=".png,.jpg,.gif"
/>
<br />
<button type="submit">{t('user:Send')}</button>
{` (max. size: ${fileSizeLimit})`}
</form>
)}{' '}
</div>
</div>
</div>