1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 19:08:21 +00:00

custom share permission (#4967)

* custom share permission

* remove path field

* add permission manager ui

* optimize custom permission manager style

* add permission setting

* add normalize_custom_permission_name

* optimize repo custom permission

* delete useless code

* optimize code

* optimize code

* optimize markdown file page

* fix a few bugs

* add permission control

* repair modify permission

* optimize style

* optimize copyright

* add try-except

* optimize code

* move file&folder

* batch operation item

* repair batch move item

* update copyright

* optimize move permission control

* optimize code

* optimize code

* optimize code & fix code wranning

* optimize code

* delete unsupport permission

* optimize code

* repair code bug

* add pro limit

* optimize code

* add permission handle for permission editor

* repair new file&folder bug

* optimize file uploader code

* custom permission user can not visit custom permission module

* optimize code

* forbid comment&detail module

* optimize code

* optimize modify/preview permission

* optimize custom permission share perm

* optimize view file module: file-toolbar

* optimize custom drag move operation

* repair column view bug

* optimize drag operation code

* repair code bug

* optimize code

Co-authored-by: shanshuirenjia <978987373@qq.com>
This commit is contained in:
王健辉
2021-09-13 10:37:07 +08:00
committed by GitHub
parent 1f68680257
commit 07df610e43
60 changed files with 1965 additions and 287 deletions

View File

@@ -0,0 +1,67 @@
import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
const propTypes = {
permission: PropTypes.object.isRequired,
onEditCustomPermission: PropTypes.func.isRequired,
onDeleteCustomPermission: PropTypes.func.isRequired,
};
class CustomPermissionItem extends React.Component {
constructor(props) {
super(props);
this.state = {
isShowOperations: false
};
}
onMouseEnter = () => {
this.setState({isShowOperations: true});
}
onMouseOver = () => {
this.setState({isShowOperations: true});
}
onMouseLeave = () => {
this.setState({isShowOperations: false});
}
onEditCustomPermission = () => {
const { permission } = this.props;
this.props.onEditCustomPermission(permission)
}
onDeleteCustomPermission = () => {
const { permission } = this.props;
this.props.onDeleteCustomPermission(permission)
}
render() {
const { permission } = this.props;
const { id, name, description } = permission;
return (
<tr key={id} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onMouseOver={this.onMouseOver}>
<td width='22%' className="text-truncate" title={name}>{name}</td>
<td width='56%' className="text-truncate">{description}</td>
<td width='22%'>
{this.state.isShowOperations && (
<Fragment>
<span className="permission-operation-btn edit" onClick={this.onEditCustomPermission}>
<i className="fa fa-pencil-alt attr-action-icon"></i>
</span>
<span className="permission-operation-btn delete" onClick={this.onDeleteCustomPermission}>
<i className="fa fa-trash attr-action-icon"></i>
</span>
</Fragment>
)}
</td>
</tr>
);
}
}
CustomPermissionItem.propTypes = propTypes;
export default CustomPermissionItem;