From b919f39b3186c5f022d3965cf6023ff9041e91ca Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 11 Mar 2016 01:58:55 +0100 Subject: [PATCH] Customizing doorkeeper views for authorizing app --- app/assets/javascripts/mastodon-logo.coffee | 2 +- app/assets/stylesheets/application.scss | 36 +++++++++++++++++ .../doorkeeper/authorizations/error.html.erb | 7 ---- .../doorkeeper/authorizations/error.html.haml | 4 ++ .../doorkeeper/authorizations/new.html.erb | 40 ------------------- .../doorkeeper/authorizations/new.html.haml | 26 ++++++++++++ .../doorkeeper/authorizations/show.html.erb | 7 ---- .../doorkeeper/authorizations/show.html.haml | 2 + app/views/layouts/auth.html.haml | 2 +- config/initializers/doorkeeper.rb | 2 +- ...20160306172223_create_doorkeeper_tables.rb | 2 +- db/schema.rb | 12 +++--- 12 files changed, 78 insertions(+), 64 deletions(-) delete mode 100644 app/views/doorkeeper/authorizations/error.html.erb create mode 100644 app/views/doorkeeper/authorizations/error.html.haml delete mode 100644 app/views/doorkeeper/authorizations/new.html.erb create mode 100644 app/views/doorkeeper/authorizations/new.html.haml delete mode 100644 app/views/doorkeeper/authorizations/show.html.erb create mode 100644 app/views/doorkeeper/authorizations/show.html.haml diff --git a/app/assets/javascripts/mastodon-logo.coffee b/app/assets/javascripts/mastodon-logo.coffee index 3fb8c0a13b..bcf52f3781 100644 --- a/app/assets/javascripts/mastodon-logo.coffee +++ b/app/assets/javascripts/mastodon-logo.coffee @@ -45,4 +45,4 @@ work = -> stop() $ -> - setTimeout(start, 500) + setTimeout(start, 100) diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 187c083115..d4b462cabd 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -154,6 +154,29 @@ body { } } + .prompt { + font-size: 16px; + color: #9baec8; + text-align: center; + + .prompt-highlight { + font-weight: 500; + color: #fff; + } + } + + code.copypasteable { + display: block; + font-family: 'Roboto Mono', monospace; + font-weight: 400; + font-size: 12px; + margin-top: 20px; + background: #282c37; + border-radius: 4px; + padding: 2px; + word-wrap: break-word; + } + .actions { margin-top: 30px; @@ -170,6 +193,7 @@ body { cursor: pointer; font-weight: 500; outline: 0; + margin-bottom: 10px; &:hover { background-color: lighten(#2b90d9, 5%); @@ -180,6 +204,18 @@ body { top: 1px; background-color: darken(#2b90d9, 5%); } + + &.negative { + background: #df405a; + + &:hover { + background-color: lighten(#df405a, 5%); + } + + &:active, &:focus { + background-color: darken(#df405a, 5%); + } + } } } diff --git a/app/views/doorkeeper/authorizations/error.html.erb b/app/views/doorkeeper/authorizations/error.html.erb deleted file mode 100644 index 2247c0d54c..0000000000 --- a/app/views/doorkeeper/authorizations/error.html.erb +++ /dev/null @@ -1,7 +0,0 @@ - - -
-
<%= @pre_auth.error_response.body[:error_description] %>
-
diff --git a/app/views/doorkeeper/authorizations/error.html.haml b/app/views/doorkeeper/authorizations/error.html.haml new file mode 100644 index 0000000000..cb97ae170e --- /dev/null +++ b/app/views/doorkeeper/authorizations/error.html.haml @@ -0,0 +1,4 @@ +.prompt= t('doorkeeper.authorizations.error.title') + +#error_explanation + = @pre_auth.error_response.body[:error_description] diff --git a/app/views/doorkeeper/authorizations/new.html.erb b/app/views/doorkeeper/authorizations/new.html.erb deleted file mode 100644 index c6f738b33b..0000000000 --- a/app/views/doorkeeper/authorizations/new.html.erb +++ /dev/null @@ -1,40 +0,0 @@ - - -
-

- <%= raw t('.prompt', client_name: "#{ @pre_auth.client.name }") %> -

- - <% if @pre_auth.scopes.count > 0 %> -
-

<%= t('.able_to') %>:

- -
    - <% @pre_auth.scopes.each do |scope| %> -
  • <%= t scope, scope: [:doorkeeper, :scopes] %>
  • - <% end %> -
-
- <% end %> - -
- <%= form_tag oauth_authorization_path, method: :post do %> - <%= hidden_field_tag :client_id, @pre_auth.client.uid %> - <%= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri %> - <%= hidden_field_tag :state, @pre_auth.state %> - <%= hidden_field_tag :response_type, @pre_auth.response_type %> - <%= hidden_field_tag :scope, @pre_auth.scope %> - <%= submit_tag t('doorkeeper.authorizations.buttons.authorize'), class: "btn btn-success btn-lg btn-block" %> - <% end %> - <%= form_tag oauth_authorization_path, method: :delete do %> - <%= hidden_field_tag :client_id, @pre_auth.client.uid %> - <%= hidden_field_tag :redirect_uri, @pre_auth.redirect_uri %> - <%= hidden_field_tag :state, @pre_auth.state %> - <%= hidden_field_tag :response_type, @pre_auth.response_type %> - <%= hidden_field_tag :scope, @pre_auth.scope %> - <%= submit_tag t('doorkeeper.authorizations.buttons.deny'), class: "btn btn-danger btn-lg btn-block" %> - <% end %> -
-
diff --git a/app/views/doorkeeper/authorizations/new.html.haml b/app/views/doorkeeper/authorizations/new.html.haml new file mode 100644 index 0000000000..91d71cc018 --- /dev/null +++ b/app/views/doorkeeper/authorizations/new.html.haml @@ -0,0 +1,26 @@ +.prompt= raw t('.prompt', client_name: "#{ @pre_auth.client.name }") + +/- if @pre_auth.scopes.count > 0 +/ .scope-permission-prompt +/ %p= t('.able_to') + +/ %ul.scope-permissions +/ - @pre_auth.scopes.each do |scope| +/ %li= t scope, scope: [:doorkeeper, :scopes] + +.actions + = form_tag oauth_authorization_path, method: :post do + = hidden_field_tag :client_id, @pre_auth.client.uid + = hidden_field_tag :redirect_uri, @pre_auth.redirect_uri + = hidden_field_tag :state, @pre_auth.state + = hidden_field_tag :response_type, @pre_auth.response_type + = hidden_field_tag :scope, @pre_auth.scope + = button_tag t('doorkeeper.authorizations.buttons.authorize'), type: :submit + + = form_tag oauth_authorization_path, method: :delete do + = hidden_field_tag :client_id, @pre_auth.client.uid + = hidden_field_tag :redirect_uri, @pre_auth.redirect_uri + = hidden_field_tag :state, @pre_auth.state + = hidden_field_tag :response_type, @pre_auth.response_type + = hidden_field_tag :scope, @pre_auth.scope + = button_tag t('doorkeeper.authorizations.buttons.deny'), type: :submit, class: 'negative' diff --git a/app/views/doorkeeper/authorizations/show.html.erb b/app/views/doorkeeper/authorizations/show.html.erb deleted file mode 100644 index f4d6610193..0000000000 --- a/app/views/doorkeeper/authorizations/show.html.erb +++ /dev/null @@ -1,7 +0,0 @@ - - -
- <%= params[:code] %> -
diff --git a/app/views/doorkeeper/authorizations/show.html.haml b/app/views/doorkeeper/authorizations/show.html.haml new file mode 100644 index 0000000000..44638318b0 --- /dev/null +++ b/app/views/doorkeeper/authorizations/show.html.haml @@ -0,0 +1,2 @@ +.prompt= t('.title') +%code.copypasteable= params[:code] diff --git a/app/views/layouts/auth.html.haml b/app/views/layouts/auth.html.haml index 7758157511..8a2c8fa74a 100644 --- a/app/views/layouts/auth.html.haml +++ b/app/views/layouts/auth.html.haml @@ -2,7 +2,7 @@ .logo-container %h1 = link_to root_path do - = render partial: 'logo', locals: { dim: 200 } + = render partial: 'application/logo', locals: { dim: 200 } %small= Rails.configuration.x.local_domain .form-container diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 10b9980b45..7418ba24d6 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -47,7 +47,7 @@ Doorkeeper.configure do # For more information go to # https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes # default_scopes :public - # optional_scopes :write, :update + # optional_scopes :write, :follow # Change the way client credentials are retrieved from the request object. # By default it retrieves first from the `HTTP_AUTHORIZATION` header, then diff --git a/db/migrate/20160306172223_create_doorkeeper_tables.rb b/db/migrate/20160306172223_create_doorkeeper_tables.rb index e9da5f3424..d89b005c3c 100644 --- a/db/migrate/20160306172223_create_doorkeeper_tables.rb +++ b/db/migrate/20160306172223_create_doorkeeper_tables.rb @@ -12,7 +12,7 @@ class CreateDoorkeeperTables < ActiveRecord::Migration add_index :oauth_applications, :uid, unique: true create_table :oauth_access_grants do |t| - t.integer :user_id, null: false + t.integer :resource_owner_id, null: false t.integer :application_id, null: false t.string :token, null: false t.integer :expires_in, null: false diff --git a/db/schema.rb b/db/schema.rb index a63c6f3995..b5026c0c1a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -68,12 +68,12 @@ ActiveRecord::Schema.define(version: 20160306172223) do add_index "mentions", ["account_id", "status_id"], name: "index_mentions_on_account_id_and_status_id", unique: true, using: :btree create_table "oauth_access_grants", force: :cascade do |t| - t.integer "user_id", null: false - t.integer "application_id", null: false - t.string "token", null: false - t.integer "expires_in", null: false - t.text "redirect_uri", null: false - t.datetime "created_at", null: false + t.integer "resource_owner_id", null: false + t.integer "application_id", null: false + t.string "token", null: false + t.integer "expires_in", null: false + t.text "redirect_uri", null: false + t.datetime "created_at", null: false t.datetime "revoked_at" t.string "scopes" end