| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import { Container } from 'unstated';
- import loggerFactory from '@alias/logger';
- // eslint-disable-next-line no-unused-vars
- const logger = loggerFactory('growi:services:UserGroupDetailContainer');
- /**
- * Service container for admin users page (Users.jsx)
- * @extends {Container} unstated Container
- */
- export default class AdminUsersContainer extends Container {
- constructor(appContainer) {
- super();
- this.appContainer = appContainer;
- this.state = {
- users: JSON.parse(document.getElementById('admin-user-page').getAttribute('users')) || [],
- isPasswordResetModalShown: false,
- isUserInviteModalShown: false,
- userForPasswordResetModal: null,
- totalUsers: 0,
- activePage: 1,
- pagingLimit: Infinity,
- };
- this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
- this.hidePasswordResetModal = this.hidePasswordResetModal.bind(this);
- this.toggleUserInviteModal = this.toggleUserInviteModal.bind(this);
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'AdminUsersContainer';
- }
- /**
- * syncUsers of selectedPage
- * @memberOf AdminUsersContainer
- * @param {number} selectedPage
- */
- async retrieveUsersByPagingNum(selectedPage) {
- const params = { page: selectedPage };
- const response = await this.appContainer.apiv3.get('/users', params);
- const users = response.data.users;
- const totalUsers = response.data.totalUsers;
- const pagingLimit = response.data.pagingLimit;
- this.setState({
- users,
- totalUsers,
- pagingLimit,
- activePage: selectedPage,
- });
- }
- /**
- * open reset password modal, and props user
- * @memberOf AdminUsersContainer
- * @param {object} user
- */
- async showPasswordResetModal(user) {
- await this.setState({
- isPasswordResetModalShown: true,
- userForPasswordResetModal: user,
- });
- }
- /**
- * close reset password modal
- * @memberOf AdminUsersContainer
- */
- async hidePasswordResetModal() {
- await this.setState({ isPasswordResetModalShown: false });
- }
- /**
- * toggle user invite modal
- * @memberOf AdminUsersContainer
- */
- async toggleUserInviteModal() {
- await this.setState({ isUserInviteModalShown: !this.state.isUserInviteModalShown });
- }
- /**
- * Activate user
- * @memberOf AdminUsersContainer
- * @param {string} userId
- * @return {string} username
- */
- async activateUser(userId) {
- // const response = await this.appContainer.apiv3.delete(`/users/${userId}/remove`);
- // const { username } = response.data.userData;
- const username = 'gest';
- return username;
- }
- /**
- * remove user
- * @memberOf AdminUsersContainer
- * @param {string} userId
- * @return {string} username
- */
- async removeUser(userId) {
- const response = await this.appContainer.apiv3.delete(`/users/${userId}/remove`);
- const { username } = response.data.userData;
- return username;
- }
- }
|