keybase unlinking
This commit is contained in:
parent
6d9bd0f013
commit
1ecd82c1d0
|
@ -1,5 +1,5 @@
|
|||
class KeybaseProofsController < ApplicationController
|
||||
before_action :require_logged_in_user, only: [:new, :create]
|
||||
before_action :require_logged_in_user, only: [:new, :create, :destroy]
|
||||
before_action :check_new_params, only: :new
|
||||
before_action :check_user_matches, only: :new
|
||||
before_action :force_to_json, only: [:kbconfig]
|
||||
|
@ -25,6 +25,15 @@ class KeybaseProofsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@user.remove_keybase_proof(params[:id])
|
||||
@user.save!
|
||||
redirect_to(
|
||||
user_path(@user),
|
||||
notice: "Removed from profile. You still need to delete it from the Keybase site or app."
|
||||
)
|
||||
end
|
||||
|
||||
def kbconfig
|
||||
return render json: {} unless Keybase.enabled?
|
||||
@domain = Keybase.DOMAIN
|
||||
|
|
|
@ -441,10 +441,15 @@ class User < ApplicationRecord
|
|||
|
||||
def add_or_update_keybase_proof(kb_username, kb_signature)
|
||||
self.keybase_signatures ||= []
|
||||
self.keybase_signatures.reject! {|kbsig| kbsig['kb_username'] == kb_username }
|
||||
self.remove_keybase_proof(kb_username)
|
||||
self.keybase_signatures.push('kb_username' => kb_username, 'sig_hash' => kb_signature)
|
||||
end
|
||||
|
||||
def remove_keybase_proof(kb_username)
|
||||
self.keybase_signatures ||= []
|
||||
self.keybase_signatures.reject! {|kbsig| kbsig['kb_username'] == kb_username }
|
||||
end
|
||||
|
||||
def is_heavy_self_promoter?
|
||||
total_count = self.stories_submitted_count
|
||||
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
<% if user.keybase_signatures? %>
|
||||
Linked to
|
||||
<% user.keybase_signatures.each do |kbs| %>
|
||||
<strong><%= link_to "@#{kbs[:kb_username]}", keybase_user_link(kbs) %></strong>
|
||||
<strong><%= link_to "✔", keybase_proof_link(kbs) %></strong>
|
||||
<% if for_self %>
|
||||
<%= link_to "Delete", "https://keybase.io/download" %>:<br>
|
||||
<pre>keybase sigs revoke <%= kbs[:sig_hash] %></pre>)
|
||||
<% end %>
|
||||
<% if for_self %>(<%= link_to "Unlink", keybase_proof_path(kbs[:kb_username]), method: :delete %>)<% end %>
|
||||
<% end %>
|
||||
<% elsif for_self %>
|
||||
<%= link_to "Run", "https://keybase.io/download" %> <pre>keybase prove lobste.rs</pre>
|
||||
|
|
|
@ -109,6 +109,16 @@
|
|||
<div style="clear: both;"></div>
|
||||
<% end %>
|
||||
|
||||
<% if @showing_user.homepage.present? %>
|
||||
<label class="required">Homepage:</label>
|
||||
|
||||
<span class="d">
|
||||
<a href="<%= h(@showing_user.homepage) %>"
|
||||
rel="me nofollow"><%= h(@showing_user.homepage) %></a>
|
||||
</span>
|
||||
<br>
|
||||
<% end %>
|
||||
|
||||
<% if @showing_user.github_username.present? %>
|
||||
<label class="required">GitHub:</label>
|
||||
|
||||
|
@ -138,15 +148,6 @@
|
|||
<%= render :partial => "keybase_proofs/proofs", locals: {user: @showing_user, for_self: for_self} %>
|
||||
</span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% if @showing_user.homepage.present? %>
|
||||
<label class="required">Homepage:</label>
|
||||
|
||||
<span class="d">
|
||||
<a href="<%= h(@showing_user.homepage) %>"
|
||||
rel="me nofollow"><%= h(@showing_user.homepage) %></a>
|
||||
</span>
|
||||
<br>
|
||||
<% end %>
|
||||
|
||||
|
|
|
@ -60,3 +60,6 @@ Rails.application.configure do
|
|||
Bullet.rails_logger = true
|
||||
end
|
||||
end
|
||||
|
||||
Keybase.DOMAIN = Rails.application.domain
|
||||
Keybase.BASE_URL = ENV.fetch('KEYBASE_BASE_URL') { 'https://keybase.io' }
|
||||
|
|
|
@ -147,7 +147,7 @@ Rails.application.routes.draw do
|
|||
get "/settings/twitter_callback" => "settings#twitter_callback"
|
||||
post "/settings/twitter_disconnect" => "settings#twitter_disconnect"
|
||||
|
||||
resources :keybase_proofs, only: [:new, :create]
|
||||
resources :keybase_proofs, only: [:new, :create, :destroy]
|
||||
get "/.well-known/keybase-proof-config" => "keybase_proofs#kbconfig", :as => "keybase_config"
|
||||
|
||||
get "/filters" => "filters#index"
|
||||
|
|
|
@ -12,7 +12,6 @@ RSpec.feature "Settings" do
|
|||
comment = create :comment, user: user
|
||||
allow_any_instance_of(User).to receive(:authenticate).with('pass').and_return(true)
|
||||
|
||||
puts "inactive #{inactive_user.id}, user #{user.id}"
|
||||
page.driver.post '/settings/delete_account', user: {
|
||||
i_am_sure: true, password: 'pass', disown: true,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue