mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-06 09:21:54 +00:00
Org admin api (#7030)
* [org admin] moved related APIs from seafile-js to org-admin-api.js; use 'orgAdminAPI' instead of 'seafileAPI' for the dialogs * [org admin] use 'orgAdminAPI' instead of 'seafileAPI' for the pages
This commit is contained in:
@@ -5,7 +5,7 @@ import { gettext, orgID } from '../../utils/constants';
|
|||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
import UserSelect from '../user-select';
|
import UserSelect from '../user-select';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import OrgUserInfo from '../../models/org-user';
|
import OrgUserInfo from '../../models/org-user';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -34,7 +34,7 @@ class AddOrgAdminDialog extends React.Component {
|
|||||||
addOrgAdmin = () => {
|
addOrgAdmin = () => {
|
||||||
if (!this.state.selectedOption) return;
|
if (!this.state.selectedOption) return;
|
||||||
const userEmail = this.state.selectedOption.email;
|
const userEmail = this.state.selectedOption.email;
|
||||||
seafileAPI.orgAdminSetOrgAdmin(orgID, userEmail, true).then(res => {
|
orgAdminAPI.orgAdminSetOrgAdmin(orgID, userEmail, true).then(res => {
|
||||||
let userInfo = new OrgUserInfo(res.data);
|
let userInfo = new OrgUserInfo(res.data);
|
||||||
this.props.onAddedOrgAdmin(userInfo);
|
this.props.onAddedOrgAdmin(userInfo);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
groupID: PropTypes.string,
|
groupID: PropTypes.string,
|
||||||
@@ -28,7 +28,7 @@ class AddDepartmentDialog extends React.Component {
|
|||||||
if (this.props.parentGroupID) {
|
if (this.props.parentGroupID) {
|
||||||
parentGroup = this.props.parentGroupID;
|
parentGroup = this.props.parentGroupID;
|
||||||
}
|
}
|
||||||
seafileAPI.orgAdminAddDepartGroup(orgID, parentGroup, this.state.departmentName.trim()).then((res) => {
|
orgAdminAPI.orgAdminAddDepartGroup(orgID, parentGroup, this.state.departmentName.trim()).then((res) => {
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
this.props.onAddNewDepartment(res.data);
|
this.props.onAddNewDepartment(res.data);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Alert } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
import UserSelect from '../user-select';
|
import UserSelect from '../user-select';
|
||||||
@@ -32,7 +32,7 @@ class AddMemberDialog extends React.Component {
|
|||||||
const email = this.state.selectedOption[0].email;
|
const email = this.state.selectedOption[0].email;
|
||||||
this.refs.orgSelect.clearSelect();
|
this.refs.orgSelect.clearSelect();
|
||||||
this.setState({ errMessage: [] });
|
this.setState({ errMessage: [] });
|
||||||
seafileAPI.orgAdminAddGroupMember(orgID, this.props.groupID, email).then((res) => {
|
orgAdminAPI.orgAdminAddGroupMember(orgID, this.props.groupID, email).then((res) => {
|
||||||
this.setState({ selectedOption: null });
|
this.setState({ selectedOption: null });
|
||||||
if (res.data.failed.length > 0) {
|
if (res.data.failed.length > 0) {
|
||||||
this.setState({ errMessage: res.data.failed[0].error_msg });
|
this.setState({ errMessage: res.data.failed[0].error_msg });
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label, Alert } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label, Alert } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -24,7 +24,7 @@ class AddRepoDialog extends React.Component {
|
|||||||
handleSubmit = () => {
|
handleSubmit = () => {
|
||||||
let isValid = this.validateName();
|
let isValid = this.validateName();
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
seafileAPI.orgAdminAddDepartmentRepo(orgID, this.props.groupID, this.state.repoName.trim()).then((res) => {
|
orgAdminAPI.orgAdminAddDepartmentRepo(orgID, this.props.groupID, this.state.repoName.trim()).then((res) => {
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
this.props.onAddNewRepo(res.data);
|
this.props.onAddNewRepo(res.data);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ class DeleteDepartDialog extends React.Component {
|
|||||||
deleteDepart = () => {
|
deleteDepart = () => {
|
||||||
const { groupID } = this.props;
|
const { groupID } = this.props;
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
seafileAPI.orgAdminDeleteDepartGroup(orgID, groupID).then((res) => {
|
orgAdminAPI.orgAdminDeleteDepartGroup(orgID, groupID).then((res) => {
|
||||||
this.props.onDeleteDepartment(groupID);
|
this.props.onDeleteDepartment(groupID);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ class DeleteMemberDialog extends React.Component {
|
|||||||
|
|
||||||
deleteMember = () => {
|
deleteMember = () => {
|
||||||
const userEmail = this.props.member.email;
|
const userEmail = this.props.member.email;
|
||||||
seafileAPI.orgAdminDeleteGroupMember(orgID, this.props.groupID, userEmail).then((res) => {
|
orgAdminAPI.orgAdminDeleteGroupMember(orgID, this.props.groupID, userEmail).then((res) => {
|
||||||
if (res.data.success) {
|
if (res.data.success) {
|
||||||
this.props.onMemberChanged();
|
this.props.onMemberChanged();
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ class DeleteRepoDialog extends React.Component {
|
|||||||
|
|
||||||
deleteRepo = () => {
|
deleteRepo = () => {
|
||||||
const { repo } = this.props;
|
const { repo } = this.props;
|
||||||
seafileAPI.orgAdminDeleteDepartmentRepo(orgID, this.props.groupID, this.props.repo.repo_id).then((res) => {
|
orgAdminAPI.orgAdminDeleteDepartmentRepo(orgID, this.props.groupID, this.props.repo.repo_id).then((res) => {
|
||||||
if (res.data.success) {
|
if (res.data.success) {
|
||||||
this.props.onDeleteRepo(repo.repo_id);
|
this.props.onDeleteRepo(repo.repo_id);
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
|
import { Modal, ModalHeader, ModalBody } from 'reactstrap';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
@@ -28,7 +28,7 @@ class FileUpdateDetailDialog extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminGetFileUpdateDetail(this.props.repoID, this.props.commitID).then(res => {
|
orgAdminAPI.orgAdminGetFileUpdateDetail(this.props.repoID, this.props.commitID).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
time: res.data.date_time,
|
time: res.data.date_time,
|
||||||
renamed: this.state.renamed.concat(res.data.renamed),
|
renamed: this.state.renamed.concat(res.data.renamed),
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Form, FormGroup, Label } from 'reactstrap';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ class RenameDepartmentDialog extends React.Component {
|
|||||||
let isValid = this.validateName();
|
let isValid = this.validateName();
|
||||||
const { orgID, groupID } = this.props;
|
const { orgID, groupID } = this.props;
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
seafileAPI.orgAdminUpdateDepartGroup(orgID, groupID, this.state.departmentName.trim()).then((res) => {
|
orgAdminAPI.orgAdminUpdateDepartGroup(orgID, groupID, this.state.departmentName.trim()).then((res) => {
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
this.props.onDepartmentNameChanged(res.data);
|
this.props.onDepartmentNameChanged(res.data);
|
||||||
toaster.success(gettext('Name updated'));
|
toaster.success(gettext('Name updated'));
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, InputGroupAddon, InputGroup } from 'reactstrap';
|
import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, InputGroupAddon, InputGroup } from 'reactstrap';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ class SetGroupQuotaDialog extends React.Component {
|
|||||||
if ((quota.length && myReg.test(quota)) || quota == -2) {
|
if ((quota.length && myReg.test(quota)) || quota == -2) {
|
||||||
this.setState({ errMessage: '' });
|
this.setState({ errMessage: '' });
|
||||||
let newQuota = this.state.quota == -2 ? this.state.quota : this.state.quota * 1000000;
|
let newQuota = this.state.quota == -2 ? this.state.quota : this.state.quota * 1000000;
|
||||||
seafileAPI.orgAdminSetGroupQuota(orgID, this.props.groupID, newQuota).then((res) => {
|
orgAdminAPI.orgAdminSetGroupQuota(orgID, this.props.groupID, newQuota).then((res) => {
|
||||||
this.props.toggle();
|
this.props.toggle();
|
||||||
this.props.onSetQuota(res.data);
|
this.props.onSetQuota(res.data);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -37,7 +37,7 @@ class SetOrgUserContactEmail extends React.Component {
|
|||||||
submitBtnDisabled: true
|
submitBtnDisabled: true
|
||||||
});
|
});
|
||||||
|
|
||||||
seafileAPI.orgAdminSetOrgUserContactEmail(orgID, email, contactEmail).then((res) => {
|
orgAdminAPI.orgAdminSetOrgUserContactEmail(orgID, email, contactEmail).then((res) => {
|
||||||
const newContactEmail = contactEmail ? res.data.contact_email : '';
|
const newContactEmail = contactEmail ? res.data.contact_email : '';
|
||||||
this.props.updateContactEmail(newContactEmail);
|
this.props.updateContactEmail(newContactEmail);
|
||||||
this.props.toggleDialog();
|
this.props.toggleDialog();
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
|
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -45,7 +44,7 @@ class SetOrgUserDefaultQuota extends React.Component {
|
|||||||
submitBtnDisabled: true
|
submitBtnDisabled: true
|
||||||
});
|
});
|
||||||
|
|
||||||
seafileAPI.orgAdminSetOrgUserDefaultQuota(orgID, quota).then((res) => {
|
orgAdminAPI.orgAdminSetOrgUserDefaultQuota(orgID, quota).then((res) => {
|
||||||
this.props.updateQuota(res.data.user_default_quota);
|
this.props.updateQuota(res.data.user_default_quota);
|
||||||
this.props.toggleDialog();
|
this.props.toggleDialog();
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -39,7 +39,7 @@ class SetOrgUserName extends React.Component {
|
|||||||
|
|
||||||
// when name is '', api returns the previous name
|
// when name is '', api returns the previous name
|
||||||
// but newName needs to be ''
|
// but newName needs to be ''
|
||||||
seafileAPI.orgAdminSetOrgUserName(orgID, email, name).then((res) => {
|
orgAdminAPI.orgAdminSetOrgUserName(orgID, email, name).then((res) => {
|
||||||
const newName = name ? res.data.name : '';
|
const newName = name ? res.data.name : '';
|
||||||
this.props.updateName(newName);
|
this.props.updateName(newName);
|
||||||
this.props.toggleDialog();
|
this.props.toggleDialog();
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
|
import { Modal, ModalHeader, ModalBody, ModalFooter, InputGroup, InputGroupAddon, InputGroupText } from 'reactstrap';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
@@ -46,7 +46,7 @@ class SetOrgUserQuota extends React.Component {
|
|||||||
submitBtnDisabled: true
|
submitBtnDisabled: true
|
||||||
});
|
});
|
||||||
|
|
||||||
seafileAPI.orgAdminSetOrgUserQuota(orgID, email, quota).then((res) => {
|
orgAdminAPI.orgAdminSetOrgUserQuota(orgID, email, quota).then((res) => {
|
||||||
this.props.updateQuota(res.data.quota_total);
|
this.props.updateQuota(res.data.quota_total);
|
||||||
this.props.toggleDialog();
|
this.props.toggleDialog();
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
@@ -5,6 +5,7 @@ import { Button, Modal, ModalHeader, ModalBody, ModalFooter,
|
|||||||
import makeAnimated from 'react-select/animated';
|
import makeAnimated from 'react-select/animated';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { seafileAPI } from '../../utils/seafile-api';
|
||||||
import { systemAdminAPI } from '../../utils/system-admin-api';
|
import { systemAdminAPI } from '../../utils/system-admin-api';
|
||||||
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, isPro, orgID } from '../../utils/constants';
|
import { gettext, isPro, orgID } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../toast';
|
import toaster from '../toast';
|
||||||
@@ -61,7 +62,7 @@ class TransferDialog extends React.Component {
|
|||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
if (this.props.isOrgAdmin) {
|
if (this.props.isOrgAdmin) {
|
||||||
seafileAPI.orgAdminListDepartments(orgID).then((res) => {
|
orgAdminAPI.orgAdminListDepartments(orgID).then((res) => {
|
||||||
this.updateOptions(res);
|
this.updateOptions(res);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import ModalPortal from '../../../components/modal-portal';
|
import ModalPortal from '../../../components/modal-portal';
|
||||||
@@ -34,7 +34,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listOrgGroupRepo = (groupID) => {
|
listOrgGroupRepo = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupRepos(orgID, groupID).then(res => {
|
orgAdminAPI.orgAdminListGroupRepos(orgID, groupID).then(res => {
|
||||||
this.setState({ repos: res.data.libraries });
|
this.setState({ repos: res.data.libraries });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import ModalPortal from '../../../components/modal-portal';
|
import ModalPortal from '../../../components/modal-portal';
|
||||||
import AddDepartDialog from '../../../components/dialog/org-add-department-dialog';
|
import AddDepartDialog from '../../../components/dialog/org-add-department-dialog';
|
||||||
@@ -30,7 +30,7 @@ class OrgDepartmentsList extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listDepartGroups = () => {
|
listDepartGroups = () => {
|
||||||
seafileAPI.orgAdminListDepartGroups(orgID).then(res => {
|
orgAdminAPI.orgAdminListDepartGroups(orgID).then(res => {
|
||||||
this.setState({ groups: res.data.data });
|
this.setState({ groups: res.data.data });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import ModalPortal from '../../../components/modal-portal';
|
import ModalPortal from '../../../components/modal-portal';
|
||||||
@@ -52,7 +52,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listOrgGroupRepo = (groupID) => {
|
listOrgGroupRepo = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupRepos(orgID, groupID).then(res => {
|
orgAdminAPI.orgAdminListGroupRepos(orgID, groupID).then(res => {
|
||||||
this.setState({ repos: res.data.libraries });
|
this.setState({ repos: res.data.libraries });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
@@ -61,7 +61,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
listOrgMembers = (groupID) => {
|
listOrgMembers = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
orgAdminAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
members: res.data.members,
|
members: res.data.members,
|
||||||
groups: res.data.groups,
|
groups: res.data.groups,
|
||||||
@@ -75,7 +75,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
listSubDepartGroups = (groupID) => {
|
listSubDepartGroups = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
orgAdminAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
||||||
this.setState({ groups: res.data.groups });
|
this.setState({ groups: res.data.groups });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
@@ -240,7 +240,7 @@ class MemberItem extends React.Component {
|
|||||||
|
|
||||||
onChangeUserRole = (roleOption) => {
|
onChangeUserRole = (roleOption) => {
|
||||||
let isAdmin = roleOption.value === 'Admin' ? true : false;
|
let isAdmin = roleOption.value === 'Admin' ? true : false;
|
||||||
seafileAPI.orgAdminSetGroupMemberRole(orgID, this.props.groupID, this.props.member.email, isAdmin).then((res) => {
|
orgAdminAPI.orgAdminSetGroupMemberRole(orgID, this.props.groupID, this.props.member.email, isAdmin).then((res) => {
|
||||||
this.props.onMemberChanged();
|
this.props.onMemberChanged();
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Fragment } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { Link } from '@gatsbyjs/reach-router';
|
import { Link } from '@gatsbyjs/reach-router';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
@@ -57,7 +57,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listOrgMembers = (groupID) => {
|
listOrgMembers = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
orgAdminAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
members: res.data.members,
|
members: res.data.members,
|
||||||
groups: res.data.groups,
|
groups: res.data.groups,
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import { gettext, orgID, lang } from '../../../utils/constants';
|
import { gettext, orgID, lang } from '../../../utils/constants';
|
||||||
@@ -41,7 +41,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listOrgMembers = (groupID) => {
|
listOrgMembers = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
orgAdminAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
members: res.data.members,
|
members: res.data.members,
|
||||||
groups: res.data.groups,
|
groups: res.data.groups,
|
||||||
@@ -55,7 +55,7 @@ class OrgDepartmentItem extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
listSubDepartGroups = (groupID) => {
|
listSubDepartGroups = (groupID) => {
|
||||||
seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
orgAdminAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => {
|
||||||
this.setState({ groups: res.data.groups });
|
this.setState({ groups: res.data.groups });
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { orgID, gettext } from '../../../utils/constants';
|
import { orgID, gettext } from '../../../utils/constants';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
@@ -117,7 +117,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
unlinkDevice = (deleteFiles) => {
|
unlinkDevice = (deleteFiles) => {
|
||||||
const { platform, device_id, user } = this.props.item;
|
const { platform, device_id, user } = this.props.item;
|
||||||
seafileAPI.orgAdminUnlinkDevice(orgID, platform, device_id, user, deleteFiles).then((res) => {
|
orgAdminAPI.orgAdminUnlinkDevice(orgID, platform, device_id, user, deleteFiles).then((res) => {
|
||||||
this.setState({ unlinked: true });
|
this.setState({ unlinked: true });
|
||||||
let message = gettext('Successfully unlinked the device.');
|
let message = gettext('Successfully unlinked the device.');
|
||||||
toaster.success(message);
|
toaster.success(message);
|
||||||
@@ -191,7 +191,7 @@ class DevicesByPlatform extends Component {
|
|||||||
getDevicesListByPage = (page) => {
|
getDevicesListByPage = (page) => {
|
||||||
let platform = this.props.devicesPlatform;
|
let platform = this.props.devicesPlatform;
|
||||||
let per_page = this.state.perPage;
|
let per_page = this.state.perPage;
|
||||||
seafileAPI.orgAdminListDevices(orgID, platform, page, per_page).then((res) => {
|
orgAdminAPI.orgAdminListDevices(orgID, platform, page, per_page).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
devicesData: res.data.devices,
|
devicesData: res.data.devices,
|
||||||
pageInfo: res.data.page_info,
|
pageInfo: res.data.page_info,
|
||||||
|
@@ -4,7 +4,7 @@ import { Button } from 'reactstrap';
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import { Link } from '@gatsbyjs/reach-router';
|
import { Link } from '@gatsbyjs/reach-router';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { siteRoot, gettext, orgID } from '../../../utils/constants';
|
import { siteRoot, gettext, orgID } from '../../../utils/constants';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
@@ -150,7 +150,7 @@ class OrgDevicesErrors extends Component {
|
|||||||
|
|
||||||
getDeviceErrorsListByPage = (page) => {
|
getDeviceErrorsListByPage = (page) => {
|
||||||
let per_page = this.state.perPage;
|
let per_page = this.state.perPage;
|
||||||
seafileAPI.orgAdminListDevicesErrors(orgID, page, per_page).then((res) => {
|
orgAdminAPI.orgAdminListDevicesErrors(orgID, page, per_page).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
devicesErrors: res.data.device_errors,
|
devicesErrors: res.data.device_errors,
|
||||||
@@ -166,7 +166,7 @@ class OrgDevicesErrors extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
clean = () => {
|
clean = () => {
|
||||||
seafileAPI.orgAdminClearDeviceErrors(orgID).then((res) => {
|
orgAdminAPI.orgAdminClearDeviceErrors(orgID).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
devicesErrors: [],
|
devicesErrors: [],
|
||||||
isCleanBtnShown: false
|
isCleanBtnShown: false
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { gettext, siteRoot, mediaUrl, orgID } from '../../../utils/constants';
|
import { gettext, siteRoot, mediaUrl, orgID } from '../../../utils/constants';
|
||||||
import toaster from '../../../components/toast/index';
|
import toaster from '../../../components/toast/index';
|
||||||
import EmptyTip from '../../../components/empty-tip';
|
import EmptyTip from '../../../components/empty-tip';
|
||||||
@@ -14,7 +14,6 @@ import { navigate } from '@gatsbyjs/reach-router';
|
|||||||
import OrgAdminRepo from '../../../models/org-admin-repo';
|
import OrgAdminRepo from '../../../models/org-admin-repo';
|
||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import ReposNav from './org-repo-nav';
|
import ReposNav from './org-repo-nav';
|
||||||
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
|
||||||
|
|
||||||
|
|
||||||
class Content extends Component {
|
class Content extends Component {
|
||||||
@@ -315,7 +314,7 @@ class OrgAllRepos extends Component {
|
|||||||
|
|
||||||
getReposByPage = (page) => {
|
getReposByPage = (page) => {
|
||||||
let { perPage } = this.state;
|
let { perPage } = this.state;
|
||||||
seafileAPI.orgAdminListOrgRepos(orgID, page, perPage, this.state.sortBy).then((res) => {
|
orgAdminAPI.orgAdminListOrgRepos(orgID, page, perPage, this.state.sortBy).then((res) => {
|
||||||
let orgRepos = res.data.repo_list.map(item => {
|
let orgRepos = res.data.repo_list.map(item => {
|
||||||
return new OrgAdminRepo(item);
|
return new OrgAdminRepo(item);
|
||||||
});
|
});
|
||||||
@@ -369,7 +368,7 @@ class OrgAllRepos extends Component {
|
|||||||
|
|
||||||
|
|
||||||
deleteRepoItem = (repo) => {
|
deleteRepoItem = (repo) => {
|
||||||
seafileAPI.orgAdminDeleteOrgRepo(orgID, repo.repoID).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgRepo(orgID, repo.repoID).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
repos: this.state.repos.filter(item => item.repoID !== repo.repoID)
|
repos: this.state.repos.filter(item => item.repoID !== repo.repoID)
|
||||||
});
|
});
|
||||||
|
@@ -4,7 +4,7 @@ import { Button } from 'reactstrap';
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { gettext, orgID } from '../../../utils/constants';
|
import { gettext, orgID } from '../../../utils/constants';
|
||||||
import toaster from '../../../components/toast/index';
|
import toaster from '../../../components/toast/index';
|
||||||
import EmptyTip from '../../../components/empty-tip';
|
import EmptyTip from '../../../components/empty-tip';
|
||||||
@@ -152,7 +152,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
onDeleteRepo = () => {
|
onDeleteRepo = () => {
|
||||||
const repo = this.props.repo;
|
const repo = this.props.repo;
|
||||||
seafileAPI.orgAdminDeleteTrashRepo(orgID, repo.id).then((res) => {
|
orgAdminAPI.orgAdminDeleteTrashRepo(orgID, repo.id).then((res) => {
|
||||||
this.props.onDeleteRepo(repo);
|
this.props.onDeleteRepo(repo);
|
||||||
const msg = gettext('Successfully deleted {name}.').replace('{name}', repo.name);
|
const msg = gettext('Successfully deleted {name}.').replace('{name}', repo.name);
|
||||||
toaster.success(msg);
|
toaster.success(msg);
|
||||||
@@ -164,7 +164,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
onRestoreRepo = () => {
|
onRestoreRepo = () => {
|
||||||
const repo = this.props.repo;
|
const repo = this.props.repo;
|
||||||
seafileAPI.orgAdminRestoreTrashRepo(orgID, repo.id).then((res) => {
|
orgAdminAPI.orgAdminRestoreTrashRepo(orgID, repo.id).then((res) => {
|
||||||
this.props.onRestoreRepo(repo);
|
this.props.onRestoreRepo(repo);
|
||||||
let message = gettext('Successfully restored the library.');
|
let message = gettext('Successfully restored the library.');
|
||||||
toaster.success(message);
|
toaster.success(message);
|
||||||
@@ -314,7 +314,7 @@ class TrashRepos extends Component {
|
|||||||
|
|
||||||
getReposByPage = (page) => {
|
getReposByPage = (page) => {
|
||||||
let { perPage } = this.state;
|
let { perPage } = this.state;
|
||||||
seafileAPI.orgAdminListTrashRepos(orgID, page, perPage).then((res) => {
|
orgAdminAPI.orgAdminListTrashRepos(orgID, page, perPage).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
repos: res.data.repos,
|
repos: res.data.repos,
|
||||||
pageInfo: res.data.page_info,
|
pageInfo: res.data.page_info,
|
||||||
@@ -355,7 +355,7 @@ class TrashRepos extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
cleanTrash = () => {
|
cleanTrash = () => {
|
||||||
seafileAPI.orgAdminCleanTrashRepo(orgID).then(res => {
|
orgAdminAPI.orgAdminCleanTrashRepo(orgID).then(res => {
|
||||||
this.setState({ repos: [] });
|
this.setState({ repos: [] });
|
||||||
toaster.success(gettext('Successfully cleared trash.'));
|
toaster.success(gettext('Successfully cleared trash.'));
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Link } from '@gatsbyjs/reach-router';
|
import { Link } from '@gatsbyjs/reach-router';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, siteRoot } from '../../utils/constants';
|
import { gettext, siteRoot } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -23,7 +23,7 @@ class OrgGroupInfo extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminGetGroup(orgID, this.props.groupID).then((res) => {
|
orgAdminAPI.orgAdminGetGroup(orgID, this.props.groupID).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Link } from '@gatsbyjs/reach-router';
|
import { Link } from '@gatsbyjs/reach-router';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, siteRoot } from '../../utils/constants';
|
import { gettext, siteRoot } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -23,7 +23,7 @@ class OrgGroupMembers extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminListGroupMembers(orgID, this.props.groupID).then((res) => {
|
orgAdminAPI.orgAdminListGroupMembers(orgID, this.props.groupID).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Link } from '@gatsbyjs/reach-router';
|
import { Link } from '@gatsbyjs/reach-router';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, siteRoot } from '../../utils/constants';
|
import { gettext, siteRoot } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -25,7 +25,7 @@ class OrgGroupRepos extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminListGroupRepos(orgID, this.props.groupID).then((res) => {
|
orgAdminAPI.orgAdminListGroupRepos(orgID, this.props.groupID).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
@@ -138,7 +138,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
deleteRepo = () => {
|
deleteRepo = () => {
|
||||||
const repo = this.props.data;
|
const repo = this.props.data;
|
||||||
seafileAPI.orgAdminDeleteOrgRepo(orgID, repo.repo_id).then((res) => {
|
orgAdminAPI.orgAdminDeleteOrgRepo(orgID, repo.repo_id).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
deleted: true,
|
deleted: true,
|
||||||
isRepoDeleted: true,
|
isRepoDeleted: true,
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Form, FormGroup, Input, Col } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Form, FormGroup, Input, Col } from 'reactstrap';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, orgID, siteRoot } from '../../utils/constants';
|
import { gettext, orgID, siteRoot } from '../../utils/constants';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import OrgGroupInfo from '../../models/org-group';
|
import OrgGroupInfo from '../../models/org-group';
|
||||||
@@ -205,7 +205,7 @@ class OrgGroupsSearchGroups extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getItems = () => {
|
getItems = () => {
|
||||||
seafileAPI.orgAdminSearchGroup(orgID, this.state.query.trim()).then(res => {
|
orgAdminAPI.orgAdminSearchGroup(orgID, this.state.query.trim()).then(res => {
|
||||||
let groupList = res.data.group_list.map(item => {
|
let groupList = res.data.group_list.map(item => {
|
||||||
return new OrgGroupInfo(item);
|
return new OrgGroupInfo(item);
|
||||||
});
|
});
|
||||||
@@ -222,7 +222,7 @@ class OrgGroupsSearchGroups extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
deleteGroupItem = (group) => {
|
deleteGroupItem = (group) => {
|
||||||
seafileAPI.orgAdminDeleteOrgGroup(orgID, group.id).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgGroup(orgID, group.id).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
orgGroups: this.state.orgGroups.filter(item => item.id != group.id)
|
orgGroups: this.state.orgGroups.filter(item => item.id != group.id)
|
||||||
});
|
});
|
||||||
|
@@ -3,13 +3,12 @@ import PropTypes from 'prop-types';
|
|||||||
import { navigate } from '@gatsbyjs/reach-router';
|
import { navigate } from '@gatsbyjs/reach-router';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { siteRoot, gettext, orgID } from '../../utils/constants';
|
import { siteRoot, gettext, orgID } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import OrgGroupInfo from '../../models/org-group';
|
import OrgGroupInfo from '../../models/org-group';
|
||||||
import MainPanelTopbar from './main-panel-topbar';
|
import MainPanelTopbar from './main-panel-topbar';
|
||||||
import ChangeGroupDialog from '../../components/dialog/change-group-dialog';
|
import ChangeGroupDialog from '../../components/dialog/change-group-dialog';
|
||||||
import { orgAdminAPI } from '../../utils/org-admin-api';
|
|
||||||
|
|
||||||
class Search extends React.Component {
|
class Search extends React.Component {
|
||||||
|
|
||||||
@@ -83,7 +82,7 @@ class OrgGroups extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
initData = (page) => {
|
initData = (page) => {
|
||||||
seafileAPI.orgAdminListOrgGroups(orgID, page).then(res => {
|
orgAdminAPI.orgAdminListOrgGroups(orgID, page).then(res => {
|
||||||
let orgGroups = res.data.groups.map(item => {
|
let orgGroups = res.data.groups.map(item => {
|
||||||
return new OrgGroupInfo(item);
|
return new OrgGroupInfo(item);
|
||||||
});
|
});
|
||||||
@@ -121,7 +120,7 @@ class OrgGroups extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
deleteGroupItem = (group) => {
|
deleteGroupItem = (group) => {
|
||||||
seafileAPI.orgAdminDeleteOrgGroup(orgID, group.id).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgGroup(orgID, group.id).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
orgGroups: this.state.orgGroups.filter(item => item.id != group.id)
|
orgGroups: this.state.orgGroups.filter(item => item.id != group.id)
|
||||||
});
|
});
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { mediaUrl, gettext, orgMemberQuotaEnabled } from '../../utils/constants';
|
import { mediaUrl, gettext, orgMemberQuotaEnabled } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import MainPanelTopbar from './main-panel-topbar';
|
import MainPanelTopbar from './main-panel-topbar';
|
||||||
@@ -25,7 +25,7 @@ class OrgInfo extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminGetOrgInfo().then(res => {
|
orgAdminAPI.orgAdminGetOrgInfo().then(res => {
|
||||||
const {
|
const {
|
||||||
org_id, org_name,
|
org_id, org_name,
|
||||||
member_quota, member_usage, active_members,
|
member_quota, member_usage, active_members,
|
||||||
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { siteRoot, gettext, serviceURL } from '../../utils/constants';
|
import { siteRoot, gettext, serviceURL } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
@@ -27,7 +27,7 @@ class OrgLinks extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
listOrgLinks = (page) => {
|
listOrgLinks = (page) => {
|
||||||
seafileAPI.orgAdminListOrgLinks(page).then(res => {
|
orgAdminAPI.orgAdminListOrgLinks(page).then(res => {
|
||||||
const data = res.data;
|
const data = res.data;
|
||||||
this.setState({
|
this.setState({
|
||||||
linkList: data.link_list,
|
linkList: data.link_list,
|
||||||
@@ -57,7 +57,7 @@ class OrgLinks extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
deleteOrgLink = (token) => {
|
deleteOrgLink = (token) => {
|
||||||
seafileAPI.orgAdminDeleteOrgLink(token).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgLink(token).then(res => {
|
||||||
if (res.data.success === true) {
|
if (res.data.success === true) {
|
||||||
this.listOrgLinks(this.state.page);
|
this.listOrgLinks(this.state.page);
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { siteRoot, gettext, lang } from '../../utils/constants';
|
import { siteRoot, gettext, lang } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
@@ -33,7 +33,7 @@ class OrgLogsFileAudit extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
initData = (email, repoID, page) => {
|
initData = (email, repoID, page) => {
|
||||||
seafileAPI.orgAdminListFileAudit(email, repoID, page).then(res => {
|
orgAdminAPI.orgAdminListFileAudit(email, repoID, page).then(res => {
|
||||||
let eventList = res.data.log_list.map(item => {
|
let eventList = res.data.log_list.map(item => {
|
||||||
return new OrgLogsFileAuditEvent(item);
|
return new OrgLogsFileAuditEvent(item);
|
||||||
});
|
});
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { siteRoot, gettext, lang } from '../../utils/constants';
|
import { siteRoot, gettext, lang } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
@@ -38,7 +38,7 @@ class OrgLogsFileUpdate extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
initData = (email, repoID, page) => {
|
initData = (email, repoID, page) => {
|
||||||
seafileAPI.orgAdminListFileUpdate(email, repoID, page).then(res => {
|
orgAdminAPI.orgAdminListFileUpdate(email, repoID, page).then(res => {
|
||||||
let eventList = res.data.log_list.map(item => {
|
let eventList = res.data.log_list.map(item => {
|
||||||
return new OrgLogsFileUpdateEvent(item);
|
return new OrgLogsFileUpdateEvent(item);
|
||||||
});
|
});
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { siteRoot, gettext, lang } from '../../utils/constants';
|
import { siteRoot, gettext, lang } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
@@ -33,7 +33,7 @@ class OrgLogsFileUpdate extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
initData = (email, repoID, page) => {
|
initData = (email, repoID, page) => {
|
||||||
seafileAPI.orgAdminListPermAudit(email, repoID, page).then(res => {
|
orgAdminAPI.orgAdminListPermAudit(email, repoID, page).then(res => {
|
||||||
let eventList = res.data.log_list.map(item => {
|
let eventList = res.data.log_list.map(item => {
|
||||||
return new OrgLogsFilePermEvent(item);
|
return new OrgLogsFilePermEvent(item);
|
||||||
});
|
});
|
||||||
|
@@ -5,7 +5,7 @@ import MainPanelTopbar from './main-panel-topbar';
|
|||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
import { gettext, orgID, serviceURL } from '../../utils/constants';
|
import { gettext, orgID, serviceURL } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Section from './section';
|
import Section from './section';
|
||||||
import OrgSamlConfigInput from './input-item';
|
import OrgSamlConfigInput from './input-item';
|
||||||
@@ -27,7 +27,7 @@ class OrgSAMLConfig extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminGetSamlConfig(orgID).then((res) => {
|
orgAdminAPI.orgAdminGetSamlConfig(orgID).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
samlConfigID: res.data.saml_config.id,
|
samlConfigID: res.data.saml_config.id,
|
||||||
@@ -53,7 +53,7 @@ class OrgSAMLConfig extends Component {
|
|||||||
if (changeType === 'domain') domain = value;
|
if (changeType === 'domain') domain = value;
|
||||||
if (changeType === 'idpCertificate') idpCertificate = value;
|
if (changeType === 'idpCertificate') idpCertificate = value;
|
||||||
|
|
||||||
seafileAPI.orgAdminUpdateSamlConfig(orgID, metadataUrl, domain, idpCertificate).then((res) => {
|
orgAdminAPI.orgAdminUpdateSamlConfig(orgID, metadataUrl, domain, idpCertificate).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
samlConfigID: res.data.saml_config.id,
|
samlConfigID: res.data.saml_config.id,
|
||||||
metadataUrl: res.data.saml_config.metadata_url,
|
metadataUrl: res.data.saml_config.metadata_url,
|
||||||
@@ -71,7 +71,7 @@ class OrgSAMLConfig extends Component {
|
|||||||
|
|
||||||
verifyDomain = () => {
|
verifyDomain = () => {
|
||||||
const { domain } = this.state;
|
const { domain } = this.state;
|
||||||
seafileAPI.orgAdminVerifyDomain(orgID, domain).then((res) => {
|
orgAdminAPI.orgAdminVerifyDomain(orgID, domain).then((res) => {
|
||||||
this.setState({ domainVerified: res.data.domain_verified });
|
this.setState({ domainVerified: res.data.domain_verified });
|
||||||
toaster.success(gettext('Domain verified'));
|
toaster.success(gettext('Domain verified'));
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
||||||
import { gettext, siteRoot, orgID, username } from '../../utils/constants';
|
import { gettext, siteRoot, orgID, username } from '../../utils/constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import Selector from '../../components/single-selector';
|
import Selector from '../../components/single-selector';
|
||||||
@@ -58,7 +58,7 @@ class UserItem extends React.Component {
|
|||||||
toggleResetPW = () => {
|
toggleResetPW = () => {
|
||||||
const { email } = this.props.user;
|
const { email } = this.props.user;
|
||||||
toaster.success(gettext('Resetting user\'s password, please wait for a moment.'));
|
toaster.success(gettext('Resetting user\'s password, please wait for a moment.'));
|
||||||
seafileAPI.orgAdminResetOrgUserPassword(orgID, email).then(res => {
|
orgAdminAPI.orgAdminResetOrgUserPassword(orgID, email).then(res => {
|
||||||
toaster.success(res.data.reset_tip);
|
toaster.success(res.data.reset_tip);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -26,7 +26,7 @@ class OrgUserProfile extends Component {
|
|||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const email = decodeURIComponent(this.props.email);
|
const email = decodeURIComponent(this.props.email);
|
||||||
seafileAPI.orgAdminGetOrgUserInfo(orgID, email).then((res) => {
|
orgAdminAPI.orgAdminGetOrgUserInfo(orgID, email).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -26,7 +26,7 @@ class OrgUserOwnedRepos extends Component {
|
|||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const email = decodeURIComponent(this.props.email);
|
const email = decodeURIComponent(this.props.email);
|
||||||
seafileAPI.orgAdminGetOrgUserOwnedRepos(orgID, email).then((res) => {
|
orgAdminAPI.orgAdminGetOrgUserOwnedRepos(orgID, email).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
@@ -134,7 +134,7 @@ class Item extends Component {
|
|||||||
|
|
||||||
deleteRepo = () => {
|
deleteRepo = () => {
|
||||||
const repo = this.props.data;
|
const repo = this.props.data;
|
||||||
seafileAPI.orgAdminDeleteOrgRepo(orgID, repo.repo_id).then((res) => {
|
orgAdminAPI.orgAdminDeleteOrgRepo(orgID, repo.repo_id).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
deleted: true,
|
deleted: true,
|
||||||
isRepoDeleted: true,
|
isRepoDeleted: true,
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../../components/loading';
|
import Loading from '../../components/loading';
|
||||||
@@ -24,7 +24,7 @@ class OrgUserSharedRepos extends Component {
|
|||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
const email = decodeURIComponent(this.props.email);
|
const email = decodeURIComponent(this.props.email);
|
||||||
seafileAPI.orgAdminGetOrgUserBesharedRepos(orgID, email).then((res) => {
|
orgAdminAPI.orgAdminGetOrgUserBesharedRepos(orgID, email).then((res) => {
|
||||||
this.setState(Object.assign({
|
this.setState(Object.assign({
|
||||||
loading: false
|
loading: false
|
||||||
}, res.data));
|
}, res.data));
|
||||||
|
@@ -5,7 +5,7 @@ import MainPanelTopbar from './main-panel-topbar';
|
|||||||
import AddOrgAdminDialog from '../../components/dialog/org-add-admin-dialog';
|
import AddOrgAdminDialog from '../../components/dialog/org-add-admin-dialog';
|
||||||
import ModalPortal from '../../components/modal-portal';
|
import ModalPortal from '../../components/modal-portal';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import OrgUserInfo from '../../models/org-user';
|
import OrgUserInfo from '../../models/org-user';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
@@ -25,7 +25,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
initOrgAdmin = () => {
|
initOrgAdmin = () => {
|
||||||
seafileAPI.orgAdminListOrgUsers(orgID, true).then(res => {
|
orgAdminAPI.orgAdminListOrgUsers(orgID, true).then(res => {
|
||||||
let userList = res.data.user_list.map(item => {
|
let userList = res.data.user_list.map(item => {
|
||||||
return new OrgUserInfo(item);
|
return new OrgUserInfo(item);
|
||||||
});
|
});
|
||||||
@@ -37,7 +37,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
toggleOrgAdminDelete = (email, username) => {
|
toggleOrgAdminDelete = (email, username) => {
|
||||||
seafileAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
orgAdminUsers: this.state.orgAdminUsers.filter(item => item.email != email)
|
orgAdminUsers: this.state.orgAdminUsers.filter(item => item.email != email)
|
||||||
});
|
});
|
||||||
@@ -51,7 +51,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
toggleRevokeAdmin = (email) => {
|
toggleRevokeAdmin = (email) => {
|
||||||
seafileAPI.orgAdminSetOrgAdmin(orgID, email, false).then(res => {
|
orgAdminAPI.orgAdminSetOrgAdmin(orgID, email, false).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
orgAdminUsers: this.state.orgAdminUsers.filter(item => item.email != email)
|
orgAdminUsers: this.state.orgAdminUsers.filter(item => item.email != email)
|
||||||
});
|
});
|
||||||
@@ -76,7 +76,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
changeStatus = (email, isActive) => {
|
changeStatus = (email, isActive) => {
|
||||||
seafileAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
orgAdminAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
||||||
let users = this.state.orgAdminUsers.map(item => {
|
let users = this.state.orgAdminUsers.map(item => {
|
||||||
if (item.email == email) {
|
if (item.email == email) {
|
||||||
item['is_active'] = res.data['is_active'];
|
item['is_active'] = res.data['is_active'];
|
||||||
|
@@ -2,7 +2,7 @@ import React, { Component, Fragment } from 'react';
|
|||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Form, FormGroup, Input, Col } from 'reactstrap';
|
import { Form, FormGroup, Input, Col } from 'reactstrap';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import { gettext, orgID } from '../../utils/constants';
|
import { gettext, orgID } from '../../utils/constants';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import UserItem from './org-user-item';
|
import UserItem from './org-user-item';
|
||||||
@@ -90,7 +90,7 @@ class OrgUsersSearchUsers extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getItems = () => {
|
getItems = () => {
|
||||||
seafileAPI.orgAdminSearchUser(orgID, this.state.query.trim()).then(res => {
|
orgAdminAPI.orgAdminSearchUser(orgID, this.state.query.trim()).then(res => {
|
||||||
let userList = res.data.user_list.map(item => {
|
let userList = res.data.user_list.map(item => {
|
||||||
return new OrgUserInfo(item);
|
return new OrgUserInfo(item);
|
||||||
});
|
});
|
||||||
@@ -107,7 +107,7 @@ class OrgUsersSearchUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
deleteUser = (email, username) => {
|
deleteUser = (email, username) => {
|
||||||
seafileAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
||||||
let newUserList = this.state.orgUsers.filter(item => {
|
let newUserList = this.state.orgUsers.filter(item => {
|
||||||
return item.email != email;
|
return item.email != email;
|
||||||
});
|
});
|
||||||
@@ -144,7 +144,7 @@ class OrgUsersSearchUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
changeStatus = (email, isActive) => {
|
changeStatus = (email, isActive) => {
|
||||||
seafileAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
orgAdminAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
||||||
let users = this.state.orgUsers.map(item => {
|
let users = this.state.orgUsers.map(item => {
|
||||||
if (item.email == email) {
|
if (item.email == email) {
|
||||||
item['is_active'] = res.data['is_active'];
|
item['is_active'] = res.data['is_active'];
|
||||||
|
@@ -10,7 +10,7 @@ import AddOrgUserDialog from '../../components/dialog/org-add-user-dialog';
|
|||||||
import InviteUserDialog from '../../components/dialog/org-admin-invite-user-dialog';
|
import InviteUserDialog from '../../components/dialog/org-admin-invite-user-dialog';
|
||||||
import InviteUserViaWeiXinDialog from '../../components/dialog/org-admin-invite-user-via-weixin-dialog';
|
import InviteUserViaWeiXinDialog from '../../components/dialog/org-admin-invite-user-via-weixin-dialog';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { orgAdminAPI } from '../../utils/org-admin-api';
|
||||||
import OrgUserInfo from '../../models/org-user';
|
import OrgUserInfo from '../../models/org-user';
|
||||||
import { gettext, invitationLink, orgID, siteRoot, orgEnableAdminInviteUser } from '../../utils/constants';
|
import { gettext, invitationLink, orgID, siteRoot, orgEnableAdminInviteUser } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
@@ -138,7 +138,7 @@ class OrgUsers extends Component {
|
|||||||
|
|
||||||
initOrgUsersData = (page) => {
|
initOrgUsersData = (page) => {
|
||||||
const { sortBy, sortOrder } = this.state;
|
const { sortBy, sortOrder } = this.state;
|
||||||
seafileAPI.orgAdminListOrgUsers(orgID, '', page, sortBy, sortOrder).then(res => {
|
orgAdminAPI.orgAdminListOrgUsers(orgID, '', page, sortBy, sortOrder).then(res => {
|
||||||
let userList = res.data.user_list.map(item => {
|
let userList = res.data.user_list.map(item => {
|
||||||
return new OrgUserInfo(item);
|
return new OrgUserInfo(item);
|
||||||
});
|
});
|
||||||
@@ -155,7 +155,7 @@ class OrgUsers extends Component {
|
|||||||
|
|
||||||
importOrgUsers = (file) => {
|
importOrgUsers = (file) => {
|
||||||
toaster.notify(gettext('It may take some time, please wait.'));
|
toaster.notify(gettext('It may take some time, please wait.'));
|
||||||
seafileAPI.orgAdminImportUsersViaFile(orgID, file).then((res) => {
|
orgAdminAPI.orgAdminImportUsersViaFile(orgID, file).then((res) => {
|
||||||
if (res.data.success.length) {
|
if (res.data.success.length) {
|
||||||
const users = res.data.success.map(item => {
|
const users = res.data.success.map(item => {
|
||||||
if (item.institution == undefined) {
|
if (item.institution == undefined) {
|
||||||
@@ -178,7 +178,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
addOrgUser = (email, name, password) => {
|
addOrgUser = (email, name, password) => {
|
||||||
seafileAPI.orgAdminAddOrgUser(orgID, email, name, password).then(res => {
|
orgAdminAPI.orgAdminAddOrgUser(orgID, email, name, password).then(res => {
|
||||||
let userInfo = new OrgUserInfo(res.data);
|
let userInfo = new OrgUserInfo(res.data);
|
||||||
this.state.orgUsers.unshift(userInfo);
|
this.state.orgUsers.unshift(userInfo);
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -196,7 +196,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
toggleOrgUsersDelete = (email, username) => {
|
toggleOrgUsersDelete = (email, username) => {
|
||||||
seafileAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
orgAdminAPI.orgAdminDeleteOrgUser(orgID, email).then(res => {
|
||||||
let users = this.state.orgUsers.filter(item => item.email != email);
|
let users = this.state.orgUsers.filter(item => item.email != email);
|
||||||
this.setState({ orgUsers: users });
|
this.setState({ orgUsers: users });
|
||||||
let msg = gettext('Deleted user %s');
|
let msg = gettext('Deleted user %s');
|
||||||
@@ -209,7 +209,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
inviteOrgUser = (emails) => {
|
inviteOrgUser = (emails) => {
|
||||||
seafileAPI.orgAdminInviteOrgUsers(orgID, emails.split(',')).then(res => {
|
orgAdminAPI.orgAdminInviteOrgUsers(orgID, emails.split(',')).then(res => {
|
||||||
this.toggleInviteUserDialog();
|
this.toggleInviteUserDialog();
|
||||||
let users = res.data.success.map(user => {
|
let users = res.data.success.map(user => {
|
||||||
return new OrgUserInfo(user);
|
return new OrgUserInfo(user);
|
||||||
@@ -236,7 +236,7 @@ class OrgUsers extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
changeStatus = (email, isActive) => {
|
changeStatus = (email, isActive) => {
|
||||||
seafileAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
orgAdminAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
|
||||||
let users = this.state.orgUsers.map(item => {
|
let users = this.state.orgUsers.map(item => {
|
||||||
if (item.email == email) {
|
if (item.email == email) {
|
||||||
item['is_active'] = res.data['is_active'];
|
item['is_active'] = res.data['is_active'];
|
||||||
|
@@ -3,7 +3,7 @@ import dayjs from 'dayjs';
|
|||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import StatisticNav from './statistic-nav';
|
import StatisticNav from './statistic-nav';
|
||||||
import StatisticCommonTool from './statistic-common-tool';
|
import StatisticCommonTool from './statistic-common-tool';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import StatisticChart from './statistic-chart';
|
import StatisticChart from './statistic-chart';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import { gettext, orgID } from '../../../utils/constants';
|
import { gettext, orgID } from '../../../utils/constants';
|
||||||
@@ -26,7 +26,7 @@ class OrgStatisticFile extends React.Component {
|
|||||||
getActiviesFiles = (startTime, endTime, groupBy) => {
|
getActiviesFiles = (startTime, endTime, groupBy) => {
|
||||||
let { filesData } = this.state;
|
let { filesData } = this.state;
|
||||||
|
|
||||||
seafileAPI.orgAdminStatisticFiles(orgID, startTime, endTime, groupBy).then((res) => {
|
orgAdminAPI.orgAdminStatisticFiles(orgID, startTime, endTime, groupBy).then((res) => {
|
||||||
let labels = [];
|
let labels = [];
|
||||||
let added = [];
|
let added = [];
|
||||||
let deleted = [];
|
let deleted = [];
|
||||||
|
@@ -3,7 +3,7 @@ import dayjs from 'dayjs';
|
|||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import StatisticNav from './statistic-nav';
|
import StatisticNav from './statistic-nav';
|
||||||
import StatisticCommonTool from './statistic-common-tool';
|
import StatisticCommonTool from './statistic-common-tool';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import StatisticChart from './statistic-chart';
|
import StatisticChart from './statistic-chart';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import { gettext, orgID } from '../../../utils/constants';
|
import { gettext, orgID } from '../../../utils/constants';
|
||||||
@@ -23,7 +23,7 @@ class OrgStatisticStorage extends React.Component {
|
|||||||
|
|
||||||
getActiviesFiles = (startTime, endTime, groupBy) => {
|
getActiviesFiles = (startTime, endTime, groupBy) => {
|
||||||
let { filesData } = this.state;
|
let { filesData } = this.state;
|
||||||
seafileAPI.orgAdminStatisticStorages(orgID, startTime, endTime, groupBy).then((res) => {
|
orgAdminAPI.orgAdminStatisticStorages(orgID, startTime, endTime, groupBy).then((res) => {
|
||||||
let labels = [];
|
let labels = [];
|
||||||
let totalStorage = [];
|
let totalStorage = [];
|
||||||
let data = res.data;
|
let data = res.data;
|
||||||
|
@@ -3,7 +3,7 @@ import { Input } from 'reactstrap';
|
|||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import TrafficTable from './traffic-table';
|
import TrafficTable from './traffic-table';
|
||||||
import TrafficTableBody from './traffic-table-body';
|
import TrafficTableBody from './traffic-table-body';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import Paginator from '../../../components/paginator';
|
import Paginator from '../../../components/paginator';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import { gettext, orgID } from '../../../utils/constants';
|
import { gettext, orgID } from '../../../utils/constants';
|
||||||
@@ -79,7 +79,7 @@ class UsersTraffic extends React.Component {
|
|||||||
isLoading: true,
|
isLoading: true,
|
||||||
errorMessage: ''
|
errorMessage: ''
|
||||||
});
|
});
|
||||||
seafileAPI.orgAdminListUserTraffic(orgID, month, page, perPage, orderBy).then(res => {
|
orgAdminAPI.orgAdminListUserTraffic(orgID, month, page, perPage, orderBy).then(res => {
|
||||||
let userTrafficList = res.data.user_monthly_traffic_list.slice(0);
|
let userTrafficList = res.data.user_monthly_traffic_list.slice(0);
|
||||||
this.setState({
|
this.setState({
|
||||||
month: month,
|
month: month,
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import React, { Fragment } from 'react';
|
import React, { Fragment } from 'react';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { gettext, orgID } from '../../../utils/constants';
|
import { gettext, orgID } from '../../../utils/constants';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import StatisticNav from './statistic-nav';
|
import StatisticNav from './statistic-nav';
|
||||||
import StatisticCommonTool from './statistic-common-tool';
|
import StatisticCommonTool from './statistic-common-tool';
|
||||||
@@ -31,7 +31,7 @@ class OrgStatisticTraffic extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
getActiviesFiles = (startTime, endTime, groupBy) => {
|
getActiviesFiles = (startTime, endTime, groupBy) => {
|
||||||
seafileAPI.orgAdminStatisticSystemTraffic(orgID, startTime, endTime, groupBy).then((res) => {
|
orgAdminAPI.orgAdminStatisticSystemTraffic(orgID, startTime, endTime, groupBy).then((res) => {
|
||||||
let labels = [];
|
let labels = [];
|
||||||
let total_upload = [];
|
let total_upload = [];
|
||||||
let total_download = [];
|
let total_download = [];
|
||||||
|
@@ -4,7 +4,7 @@ import { gettext, orgID } from '../../../utils/constants';
|
|||||||
import MainPanelTopbar from '../main-panel-topbar';
|
import MainPanelTopbar from '../main-panel-topbar';
|
||||||
import StatisticNav from './statistic-nav';
|
import StatisticNav from './statistic-nav';
|
||||||
import StatisticCommonTool from './statistic-common-tool';
|
import StatisticCommonTool from './statistic-common-tool';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import StatisticChart from './statistic-chart';
|
import StatisticChart from './statistic-chart';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
@@ -23,7 +23,7 @@ class OrgStatisticUsers extends React.Component {
|
|||||||
|
|
||||||
getActiviesFiles = (startTime, endTime, groupBy) => {
|
getActiviesFiles = (startTime, endTime, groupBy) => {
|
||||||
let { filesData } = this.state;
|
let { filesData } = this.state;
|
||||||
seafileAPI.orgAdminStatisticActiveUsers(orgID, startTime, endTime, groupBy).then((res) => {
|
orgAdminAPI.orgAdminStatisticActiveUsers(orgID, startTime, endTime, groupBy).then((res) => {
|
||||||
let labels = [];
|
let labels = [];
|
||||||
let count = [];
|
let count = [];
|
||||||
let data = res.data;
|
let data = res.data;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import { Utils } from '../../../utils/utils';
|
import { Utils } from '../../../utils/utils';
|
||||||
import { seafileAPI } from '../../../utils/seafile-api';
|
import { orgAdminAPI } from '../../../utils/org-admin-api';
|
||||||
import { gettext, mediaUrl, logoPath, orgID, orgEnableAdminCustomLogo, orgEnableAdminCustomName, enableMultiADFS } from '../../../utils/constants';
|
import { gettext, mediaUrl, logoPath, orgID, orgEnableAdminCustomLogo, orgEnableAdminCustomName, enableMultiADFS } from '../../../utils/constants';
|
||||||
import Loading from '../../../components/loading';
|
import Loading from '../../../components/loading';
|
||||||
import toaster from '../../../components/toast';
|
import toaster from '../../../components/toast';
|
||||||
@@ -32,7 +32,7 @@ class OrgWebSettings extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
seafileAPI.orgAdminGetOrgInfo().then((res) => {
|
orgAdminAPI.orgAdminGetOrgInfo().then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
loading: false,
|
loading: false,
|
||||||
config_dict: res.data,
|
config_dict: res.data,
|
||||||
@@ -50,7 +50,7 @@ class OrgWebSettings extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateName = (key, newOrgName) => {
|
updateName = (key, newOrgName) => {
|
||||||
seafileAPI.orgAdminUpdateName(orgID, newOrgName).then((res) => {
|
orgAdminAPI.orgAdminUpdateName(orgID, newOrgName).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
config_dict: res.data
|
config_dict: res.data
|
||||||
});
|
});
|
||||||
@@ -62,7 +62,7 @@ class OrgWebSettings extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
updateLogo = (file) => {
|
updateLogo = (file) => {
|
||||||
seafileAPI.orgAdminUpdateLogo(orgID, file).then((res) => {
|
orgAdminAPI.orgAdminUpdateLogo(orgID, file).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
logoPath: res.data.logo_path
|
logoPath: res.data.logo_path
|
||||||
});
|
});
|
||||||
@@ -74,7 +74,7 @@ class OrgWebSettings extends Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
orgSaveSetting = (key, value) => {
|
orgSaveSetting = (key, value) => {
|
||||||
seafileAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => {
|
orgAdminAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => {
|
||||||
toaster.success(gettext('System settings updated'));
|
toaster.success(gettext('System settings updated'));
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
let errMessage = Utils.getErrorMsg(error);
|
let errMessage = Utils.getErrorMsg(error);
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import cookie from 'react-cookies';
|
import cookie from 'react-cookies';
|
||||||
|
import FormData from 'form-data';
|
||||||
import { siteRoot } from './constants';
|
import { siteRoot } from './constants';
|
||||||
|
|
||||||
class OrgAdminAPI {
|
class OrgAdminAPI {
|
||||||
@@ -8,7 +9,7 @@ class OrgAdminAPI {
|
|||||||
this.server = server;
|
this.server = server;
|
||||||
this.username = username;
|
this.username = username;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
this.token = token;
|
this.token = token; // none
|
||||||
if (this.token && this.server) {
|
if (this.token && this.server) {
|
||||||
this.req = axios.create({
|
this.req = axios.create({
|
||||||
baseURL: this.server,
|
baseURL: this.server,
|
||||||
@@ -44,6 +45,478 @@ class OrgAdminAPI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
orgAdminGetOrgInfo() {
|
||||||
|
const url = this.server + '/api/v2.1/org/admin/info/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetSysSettingInfo(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/web-settings/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetSysSettingInfo(orgID, key, value) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/web-settings/';
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append(key, value);
|
||||||
|
return this.req.put(url, formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminUpdateName(orgID, orgName) {
|
||||||
|
const url = this.server + '/api/v2.1/org/admin/info/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('org_name', orgName);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetOrgUserDefaultQuota(orgID, quota) {
|
||||||
|
const url = this.server + '/api/v2.1/org/admin/info/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('user_default_quota', quota);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminUpdateLogo(orgID, file) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/logo/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('file', file);
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetSamlConfig(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/saml-config/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminUpdateSamlConfig(orgID, metadataUrl, domain, idpCertificate) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/saml-config/';
|
||||||
|
let formData = new FormData();
|
||||||
|
if (metadataUrl) {
|
||||||
|
formData.append('metadata_url', metadataUrl);
|
||||||
|
}
|
||||||
|
if (domain) {
|
||||||
|
formData.append('domain', domain);
|
||||||
|
}
|
||||||
|
if (idpCertificate) {
|
||||||
|
formData.append('idp_certificate', idpCertificate);
|
||||||
|
}
|
||||||
|
return this.req.put(url, formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminVerifyDomain(orgID, domain) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/verify-domain/';
|
||||||
|
let data = {
|
||||||
|
domain: domain
|
||||||
|
};
|
||||||
|
return this.req.put(url, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminStatisticFiles(orgID, startTime, endTime, groupBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/statistics/file-operations/';
|
||||||
|
let params = {
|
||||||
|
start: startTime,
|
||||||
|
end: endTime,
|
||||||
|
group_by: groupBy
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminStatisticStorages(orgID, startTime, endTime, groupBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/statistics/total-storage/';
|
||||||
|
let params = {
|
||||||
|
start: startTime,
|
||||||
|
end: endTime,
|
||||||
|
group_by: groupBy
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminStatisticActiveUsers(orgID, startTime, endTime, groupBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/statistics/active-users/';
|
||||||
|
let params = {
|
||||||
|
start: startTime,
|
||||||
|
end: endTime,
|
||||||
|
group_by: groupBy
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminStatisticSystemTraffic(orgID, startTime, endTime, groupBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/statistics/system-traffic/';
|
||||||
|
let params = {
|
||||||
|
start: startTime,
|
||||||
|
end: endTime,
|
||||||
|
group_by: groupBy
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListUserTraffic(orgID, month, page, perPage, orderBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/statistics/user-traffic/';
|
||||||
|
let params = {
|
||||||
|
month: month,
|
||||||
|
page: page,
|
||||||
|
per_page: perPage,
|
||||||
|
order_by: orderBy
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListDevices(orgID, platform, page, per_page) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/devices/';
|
||||||
|
let params = {
|
||||||
|
platform: platform,
|
||||||
|
page: page,
|
||||||
|
per_page: per_page
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminUnlinkDevice(orgID, platform, deviceID, user, wipeDevice) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/devices/';
|
||||||
|
let params = {
|
||||||
|
wipe_device: wipeDevice ? 'true' : 'false',
|
||||||
|
platform: platform,
|
||||||
|
device_id: deviceID,
|
||||||
|
user: user
|
||||||
|
};
|
||||||
|
return this.req.delete(url, { data: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListDevicesErrors(orgID, page, per_page) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/devices-errors/';
|
||||||
|
let params = {
|
||||||
|
page: page,
|
||||||
|
per_page: per_page
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminClearDeviceErrors(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/devices-errors/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListOrgUsers(orgID, isStaff, page, sortBy, sortOrder) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/';
|
||||||
|
let params = {
|
||||||
|
is_staff: isStaff,
|
||||||
|
page: page
|
||||||
|
};
|
||||||
|
if (sortBy) {
|
||||||
|
params.order_by = sortBy;
|
||||||
|
params.direction = sortOrder;
|
||||||
|
}
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSearchUser(orgID, query) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/search-user/';
|
||||||
|
let params = {
|
||||||
|
query: query,
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetOrgUserBesharedRepos(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/beshared-repos/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetOrgUserOwnedRepos(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/repos/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetOrgUserInfo(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetOrgUserName(orgID, email, name) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
const data = {
|
||||||
|
name: name
|
||||||
|
};
|
||||||
|
return this.req.put(url, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetOrgUserContactEmail(orgID, email, contactEmail) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
const data = {
|
||||||
|
contact_email: contactEmail
|
||||||
|
};
|
||||||
|
return this.req.put(url, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetOrgUserQuota(orgID, email, quota) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
const data = {
|
||||||
|
quota_total: quota
|
||||||
|
};
|
||||||
|
return this.req.put(url, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteOrgUser(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminResetOrgUserPassword(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/set-password/';
|
||||||
|
return this.req.put(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminChangeOrgUserStatus(orgID, email, isActive) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('is_active', isActive);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminAddOrgUser(orgID, email, name, password) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('email', email);
|
||||||
|
form.append('name', name);
|
||||||
|
form.append('password', password);
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminImportUsersViaFile(orgID, file) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/import-users/';
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('file', file);
|
||||||
|
return this._sendPostRequest(url, formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminInviteOrgUsers(orgID, email) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/invite-users/';
|
||||||
|
let form = new FormData();
|
||||||
|
if (Array.isArray(email)) {
|
||||||
|
email.forEach(item => {
|
||||||
|
form.append('email', item);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
form.append('email', email);
|
||||||
|
}
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetOrgAdmin(orgID, email, isStaff) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/users/' + encodeURIComponent(email) + '/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('is_staff', isStaff);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListOrgGroups(orgID, page) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/?page=' + page;
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSearchGroup(orgID, query) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/search-group/';
|
||||||
|
let params = {
|
||||||
|
query: query,
|
||||||
|
};
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetGroup(orgID, groupID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteOrgGroup(orgID, groupID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
orgAdminListDepartments(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/departments/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListOrgRepos(orgID, page, perPage, orderBy) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/repos/';
|
||||||
|
let params = {
|
||||||
|
page: page,
|
||||||
|
per_page: perPage
|
||||||
|
};
|
||||||
|
if (orderBy) {
|
||||||
|
params.order_by = orderBy;
|
||||||
|
}
|
||||||
|
return this.req.get(url, { params: params });
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteOrgRepo(orgID, repoID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/repos/' + repoID + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListTrashRepos(orgID, page, perPage) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/trash-libraries/';
|
||||||
|
let params = {
|
||||||
|
page: page,
|
||||||
|
per_page: perPage
|
||||||
|
};
|
||||||
|
return this.req.get(url, {
|
||||||
|
params: params
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteTrashRepo(orgID, repoID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/trash-libraries/' + repoID + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminRestoreTrashRepo(orgID, repoID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/trash-libraries/' + repoID + '/';
|
||||||
|
return this.req.put(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminCleanTrashRepo(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/trash-libraries/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
// org links
|
||||||
|
orgAdminListOrgLinks(page) {
|
||||||
|
const url = this.server + '/api/v2.1/org/admin/links/?page=' + page;
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteOrgLink(token) {
|
||||||
|
const url = this.server + '/api/v2.1/org/admin/links/' + token + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
// org depart group
|
||||||
|
orgAdminListDepartGroups(orgID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/address-book/groups/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListGroupInfo(orgID, groupID, showAncestors) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/address-book/groups/' + groupID + '/?return_ancestors=' + showAncestors;
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminAddDepartGroup(orgID, parentGroup, groupName, groupOwner, groupStaff) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/address-book/groups/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('parent_group', parentGroup);
|
||||||
|
form.append('group_name', groupName);
|
||||||
|
if (groupOwner) {
|
||||||
|
form.append('group_owner', groupOwner);
|
||||||
|
}
|
||||||
|
if (groupStaff) {
|
||||||
|
form.append('group_staff', groupStaff.join(','));
|
||||||
|
}
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminUpdateDepartGroup(orgID, groupID, groupName) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/address-book/groups/' + groupID + '/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('group_name', groupName);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteDepartGroup(orgID, groupID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/address-book/groups/' + groupID + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetGroupQuota(orgID, groupID, quota) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('quota', quota);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListGroupRepos(orgID, groupID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/libraries/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminAddDepartmentRepo(orgID, groupID, repoName) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/group-owned-libraries/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('repo_name', repoName);
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteDepartmentRepo(orgID, groupID, repoID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/group-owned-libraries/' + repoID + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListGroupMembers(orgID, groupID) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/members/';
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminDeleteGroupMember(orgID, groupID, userEmail) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/members/' + encodeURIComponent(userEmail) + '/';
|
||||||
|
return this.req.delete(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminAddGroupMember(orgID, groupID, userEmail) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/members/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('email', userEmail);
|
||||||
|
return this._sendPostRequest(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminSetGroupMemberRole(orgID, groupID, userEmail, isAdmin) {
|
||||||
|
const url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/members/' + encodeURIComponent(userEmail) + '/';
|
||||||
|
let form = new FormData();
|
||||||
|
form.append('is_admin', isAdmin);
|
||||||
|
return this.req.put(url, form);
|
||||||
|
}
|
||||||
|
|
||||||
|
// org admin logs
|
||||||
|
orgAdminListFileAudit(email, repoID, page) {
|
||||||
|
let url = this.server + '/api/v2.1/org/admin/logs/file-access/?page=' + page;
|
||||||
|
if (email) {
|
||||||
|
url = url + '&email=' + encodeURIComponent(email);
|
||||||
|
}
|
||||||
|
if (repoID) {
|
||||||
|
url = url + '&repo_id=' + repoID;
|
||||||
|
}
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListFileUpdate(email, repoID, page) {
|
||||||
|
let url = this.server + '/api/v2.1/org/admin/logs/file-update/?page=' + page;
|
||||||
|
if (email) {
|
||||||
|
url = url + '&email=' + encodeURIComponent(email);
|
||||||
|
}
|
||||||
|
if (repoID) {
|
||||||
|
url = url + '&repo_id=' + repoID;
|
||||||
|
}
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminListPermAudit(email, repoID, page) {
|
||||||
|
let url = this.server + '/api/v2.1/org/admin/logs/repo-permission/?page=' + page;
|
||||||
|
if (email) {
|
||||||
|
url = url + '&email=' + encodeURIComponent(email);
|
||||||
|
}
|
||||||
|
if (repoID) {
|
||||||
|
url = url + '&repo_id=' + repoID;
|
||||||
|
}
|
||||||
|
return this.req.get(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
orgAdminGetFileUpdateDetail(repoID, commitID) {
|
||||||
|
let url = this.server + '/ajax/repo/' + repoID + '/history/changes/?commit_id=' + commitID;
|
||||||
|
return this.req.get(url, { headers: { 'X-Requested-With': 'XMLHttpRequest' } });
|
||||||
|
}
|
||||||
|
|
||||||
orgAdminGroup2Department(orgID, groupID) {
|
orgAdminGroup2Department(orgID, groupID) {
|
||||||
var url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/group-to-department/';
|
var url = this.server + '/api/v2.1/org/' + orgID + '/admin/groups/' + groupID + '/group-to-department/';
|
||||||
return this.req.post(url);
|
return this.req.post(url);
|
||||||
|
Reference in New Issue
Block a user