Skip to content

Commit

Permalink
don't allow duplicate invites
Browse files Browse the repository at this point in the history
Signed-off-by: Dave Parfitt <[email protected]>
  • Loading branch information
Dave Parfitt committed Jun 14, 2016
1 parent c94f166 commit 68371bd
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
17 changes: 17 additions & 0 deletions components/builder-vault/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,23 @@ impl Worker {
let err = net::err(ErrCode::ACCESS_DENIED, "vt:origin-create:0");
try!(req.reply_complete(&mut self.sock, &err));
}

let existing_invites = try!(self.datastore()
.origins
.invites
.get_by_account_id(msg.get_account_id()));

for invite in &existing_invites {
if invite.get_origin_name() == msg.get_origin_name() {
debug!("Invite for origin {} for user {} already exists",
&msg.get_origin_name(),
&msg.get_account_name());
let err = net::err(ErrCode::ENTITY_CONFLICT, "vt:origin-create:1");
try!(req.reply_complete(&mut self.sock, &err));
return Ok(())
}
}

invitation.set_account_id(msg.get_account_id());
invitation.set_account_name(msg.get_account_name().to_string());
invitation.set_origin_id(msg.get_origin_id());
Expand Down
4 changes: 3 additions & 1 deletion components/builder-web/app/BuilderApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,10 @@ export class BuilderApiClient {
// Getting a 404 means the user does not exist.
} else if (response.status === 404) {
reject(new Error(`User '${username}' does not exist`));
} else if (response.status === 409) {
reject(new Error(`An invitation already exists for '${username}'`));
} else {
reject(response.error);
reject(new Error(response.statusText));
}
}).catch(error => reject(error));
});
Expand Down

0 comments on commit 68371bd

Please sign in to comment.