mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Overhaul of admin API key system (#8284)
- 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
This commit is contained in:
@@ -1,30 +0,0 @@
|
||||
import AdminUser from "admin/models/admin-user";
|
||||
import ApiKey from "admin/models/api-key";
|
||||
|
||||
QUnit.module("model:admin-user");
|
||||
|
||||
QUnit.test("generate key", function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var adminUser = AdminUser.create({ id: 333 });
|
||||
assert.ok(!adminUser.get("api_key"), "it has no api key by default");
|
||||
return adminUser.generateApiKey().then(function() {
|
||||
assert.present(adminUser.get("api_key"), "it has an api_key now");
|
||||
});
|
||||
});
|
||||
|
||||
QUnit.test("revoke key", function(assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var apiKey = ApiKey.create({ id: 1234, key: "asdfasdf" }),
|
||||
adminUser = AdminUser.create({ id: 333, api_key: apiKey });
|
||||
|
||||
assert.equal(
|
||||
adminUser.get("api_key"),
|
||||
apiKey,
|
||||
"it has the api key in the beginning"
|
||||
);
|
||||
return adminUser.revokeApiKey().then(function() {
|
||||
assert.blank(adminUser.get("api_key"), "it cleared the api_key");
|
||||
});
|
||||
});
|
||||
@@ -611,8 +611,6 @@ export default function() {
|
||||
});
|
||||
});
|
||||
|
||||
this.post("/admin/users/:user_id/generate_api_key", success);
|
||||
this.delete("/admin/users/:user_id/revoke_api_key", success);
|
||||
this.delete("/admin/users/:user_id.json", () =>
|
||||
response(200, { deleted: true })
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user