You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.4 KiB
PHP

<?php
$public_keys = $active_user->list_public_keys();
$admined_servers = $active_user->list_admined_servers(array('pending_requests', 'admins'));
if(isset($_POST['add_public_key'])) {
try {
$public_key = new PublicKey;
$public_key->import($_POST['add_public_key'], $active_user->uid);
$active_user->add_public_key($public_key);
redirect();
} catch(InvalidArgumentException $e) {
$content = new PageSection('key_upload_fail');
switch($e->getMessage()) {
case 'Insufficient bits in public key':
$content->set('message', "The public key you submitted is of insufficient strength; it must be at least 4096 bits.");
break;
default:
$content->set('message', "The public key you submitted doesn't look valid.");
}
}
} elseif(isset($_POST['delete_public_key'])) {
foreach($public_keys as $public_key) {
if($public_key->id == $_POST['delete_public_key']) {
$key_to_delete = $public_key;
}
}
if(isset($key_to_delete)) {
$active_user->delete_public_key($key_to_delete);
}
redirect();
} else {
$content = new PageSection('home');
$content->set('user_keys', $public_keys);
$content->set('admined_servers', $admined_servers);
$content->set('uid', $active_user->uid);
}
$page = new PageSection('base');
$page->set('title', 'Keys management');
$page->set('content', $content);
$page->set('alerts', $active_user->pop_alerts());
echo $page->generate();