mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 00:25:53 +08:00
52c5cf33f8
- Allow revoking keys without deleting them - Auto-revoke keys after a period of no use (default 6 months) - Allow multiple keys per user - Allow attaching a description to each key, for easier auditing - Log changes to keys in the staff action log - Move all key management to one place, and improve the UI
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
import { bufferedProperty } from "discourse/mixins/buffered-content";
|
|
import { popupAjaxError } from "discourse/lib/ajax-error";
|
|
import { empty } from "@ember/object/computed";
|
|
|
|
export default Ember.Controller.extend(bufferedProperty("model"), {
|
|
isNew: empty("model.id"),
|
|
|
|
actions: {
|
|
saveDescription() {
|
|
const buffered = this.buffered;
|
|
const attrs = buffered.getProperties("description");
|
|
|
|
this.model
|
|
.save(attrs)
|
|
.then(() => {
|
|
this.set("editingDescription", false);
|
|
this.rollbackBuffer();
|
|
})
|
|
.catch(popupAjaxError);
|
|
},
|
|
|
|
cancel() {
|
|
const id = this.get("userField.id");
|
|
if (Ember.isEmpty(id)) {
|
|
this.destroyAction(this.userField);
|
|
} else {
|
|
this.rollbackBuffer();
|
|
this.set("editing", false);
|
|
}
|
|
},
|
|
|
|
editDescription() {
|
|
this.toggleProperty("editingDescription");
|
|
if (!this.editingDescription) {
|
|
this.rollbackBuffer();
|
|
}
|
|
},
|
|
|
|
revokeKey(key) {
|
|
key.revoke().catch(popupAjaxError);
|
|
},
|
|
|
|
deleteKey(key) {
|
|
key
|
|
.destroyRecord()
|
|
.then(() => this.transitionToRoute("adminApiKeys.index"))
|
|
.catch(popupAjaxError);
|
|
},
|
|
|
|
undoRevokeKey(key) {
|
|
key.undoRevoke().catch(popupAjaxError);
|
|
}
|
|
}
|
|
});
|