1
0
mirror of https://github.com/dani/vroom.git synced 2024-06-03 22:01:41 +02:00

Switch promote_peer to the new api handler

This commit is contained in:
Daniel Berteaud 2015-01-18 22:17:08 +01:00
parent f181eb6406
commit b1e37a673f
3 changed files with 28 additions and 26 deletions

View File

@ -165,7 +165,8 @@ use constant API_ACTIONS => {
set_join_password => 1,
set_owner_password => 1,
set_ask_for_name => 1,
email_notification => 1
email_notification => 1,
promote_peer => 1
},
participant => {
ping => 1,

View File

@ -958,10 +958,15 @@ function initVroom(room) {
function promotePeer(id){
if (peers[id] && peers[id].role != 'owner'){
$.ajax({
url: rootUrl + 'api',
data: {
action: 'promote',
room: roomName,
peer: id
req: JSON.stringify({
action: 'promote_peer',
param: {
room: roomName,
peer: id
}
})
},
error: function(data) {
$.notify(locale.ERROR_OCCURRED, 'error');

View File

@ -1563,6 +1563,24 @@ any '/api' => sub {
}
);
}
# Promote a participant to be owner of a room
elsif ($req->{action} eq 'promote_peer'){
my $peer_id = $req->{param}->{peer_id};
if ($peer_id && $self->promote_peer({room => $room, peer_id => $peer_id})){
return $self->render(
json => {
status => 'success',
msg => $self->l('PEER_PROMOTED')
}
);
}
return $self->render(
json => {
msg => 'error',
status => $self->l('ERROR_OCCURRED')
}
);
}
};
# Catch all route: if nothing else match, it's the name of a room
@ -1702,28 +1720,6 @@ post '/*jsapi' => { jsapi => [qw(jsapi admin/jsapi)] } => sub {
},
);
}
# A participant is being promoted to the owner status
elsif ($action eq 'promote'){
my $peer = $self->param('peer');
my $status = 'error';
my $msg = $self->l('ERROR_OCCURRED');
if (!$peer){
$msg = $self->l('ERROR_OCCURRED');
}
elsif ($self->session($room)->{role} ne 'owner'){
$msg = $self->l('NOT_ALLOWED');
}
elsif ($self->promote_peer({room => $room, peer_id => $peer})){
$status = 'success';
$msg = $self->l('PEER_PROMOTED');
}
return $self->render(
json => {
msg => $msg,
status => $status
}
);
}
# Wipe etherpad data
elsif ($action eq 'wipeData'){
my $status = 'error';