mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-24 08:20:31 +08:00
feat: save policy in adapter edit page (#2190)
* fix: save policy in adapter * fix: disable edit for builtin adapter
This commit is contained in:
parent
bb937c30c1
commit
558bcf95d6
@ -269,6 +269,11 @@ func UpdatePolicy(oldPolicy, newPolicy []string, adapter *Adapter) (bool, error)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return affected, err
|
return affected, err
|
||||||
}
|
}
|
||||||
|
err = adapter.SavePolicy(casbinModel)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
return affected, nil
|
return affected, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,6 +290,10 @@ func AddPolicy(policy []string, adapter *Adapter) (bool, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
casbinModel.AddPolicy("p", "p", policy)
|
casbinModel.AddPolicy("p", "p", policy)
|
||||||
|
err = adapter.SavePolicy(casbinModel)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
@ -305,6 +314,11 @@ func RemovePolicy(policy []string, adapter *Adapter) (bool, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return affected, err
|
return affected, err
|
||||||
}
|
}
|
||||||
|
err = adapter.SavePolicy(casbinModel)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
|
||||||
return affected, nil
|
return affected, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,5 +25,12 @@ func CasbinToSlice(casbinRule xormadapter.CasbinRule) []string {
|
|||||||
casbinRule.V4,
|
casbinRule.V4,
|
||||||
casbinRule.V5,
|
casbinRule.V5,
|
||||||
}
|
}
|
||||||
|
// remove empty strings from end, for update model policy map
|
||||||
|
for i := len(s) - 1; i >= 0; i-- {
|
||||||
|
if s[i] != "" {
|
||||||
|
s = s[:i+1]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
@ -287,10 +287,10 @@ class PolicyTable extends React.Component {
|
|||||||
) : (
|
) : (
|
||||||
<div>
|
<div>
|
||||||
<Tooltip placement="topLeft" title="Edit">
|
<Tooltip placement="topLeft" title="Edit">
|
||||||
<Button disabled={this.state.editingIndex !== ""} style={{marginRight: "5px"}} icon={<EditOutlined />} size="small" onClick={() => this.edit(record, index)} />
|
<Button disabled={this.state.editingIndex !== "" || Setting.builtInObject({owner: this.props.owner, name: this.props.name})} style={{marginRight: "5px"}} icon={<EditOutlined />} size="small" onClick={() => this.edit(record, index)} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip placement="topLeft" title="Delete">
|
<Tooltip placement="topLeft" title="Delete">
|
||||||
<Button disabled={this.state.editingIndex !== ""} style={{marginRight: "5px"}} icon={<DeleteOutlined />} size="small" onClick={() => this.deletePolicy(table, index)} />
|
<Button disabled={this.state.editingIndex !== "" || Setting.builtInObject({owner: this.props.owner, name: this.props.name})} style={{marginRight: "5px"}} icon={<DeleteOutlined />} size="small" onClick={() => this.deletePolicy(table, index)} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -304,14 +304,14 @@ class PolicyTable extends React.Component {
|
|||||||
onChange: (page) => this.setState({
|
onChange: (page) => this.setState({
|
||||||
page: page,
|
page: page,
|
||||||
}),
|
}),
|
||||||
disabled: this.state.editingIndex !== "",
|
disabled: this.state.editingIndex !== "" || Setting.builtInObject({owner: this.props.owner, name: this.props.name}),
|
||||||
current: this.state.page,
|
current: this.state.page,
|
||||||
}}
|
}}
|
||||||
columns={columns} dataSource={table} rowKey="key" size="middle" bordered
|
columns={columns} dataSource={table} rowKey="key" size="middle" bordered
|
||||||
loading={this.state.loading}
|
loading={this.state.loading}
|
||||||
title={() => (
|
title={() => (
|
||||||
<div>
|
<div>
|
||||||
<Button disabled={this.state.editingIndex !== ""} style={{marginRight: "5px"}} type="primary" size="small" onClick={() => this.addRow(table)}>{i18next.t("general:Add")}</Button>
|
<Button disabled={this.state.editingIndex !== "" || Setting.builtInObject({owner: this.props.owner, name: this.props.name})} style={{marginRight: "5px"}} type="primary" size="small" onClick={() => this.addRow(table)}>{i18next.t("general:Add")}</Button>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user