commit: b919f39b3186c5f022d3965cf6023ff9041e91ca
parent: d4b9b289e8a4db61dbed9c725ee602ee63515d15
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Fri, 11 Mar 2016 01:58:55 +0100
Customizing doorkeeper views for authorizing app
Diffstat:
12 files changed, 78 insertions(+), 64 deletions(-)
diff --git 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
@@ -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
@@ -1,7 +0,0 @@
-<div class="page-header">
- <h1><%= t('doorkeeper.authorizations.error.title') %></h1>
-</div>
-
-<main role="main">
- <pre><%= @pre_auth.error_response.body[:error_description] %></pre>
-</main>
diff --git a/app/views/doorkeeper/authorizations/error.html.haml 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
@@ -1,40 +0,0 @@
-<header class="page-header" role="banner">
- <h1><%= t('.title') %></h1>
-</header>
-
-<main role="main">
- <p class="h4">
- <%= raw t('.prompt', client_name: "<strong class=\"text-info\">#{ @pre_auth.client.name }</strong>") %>
- </p>
-
- <% if @pre_auth.scopes.count > 0 %>
- <div id="oauth-permissions">
- <p><%= t('.able_to') %>:</p>
-
- <ul class="text-info">
- <% @pre_auth.scopes.each do |scope| %>
- <li><%= t scope, scope: [:doorkeeper, :scopes] %></li>
- <% end %>
- </ul>
- </div>
- <% end %>
-
- <div class="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 %>
- <%= 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 %>
- </div>
-</main>
diff --git a/app/views/doorkeeper/authorizations/new.html.haml b/app/views/doorkeeper/authorizations/new.html.haml
@@ -0,0 +1,26 @@
+.prompt= raw t('.prompt', client_name: "<strong class=\"prompt-highlight\">#{ @pre_auth.client.name }</strong>")
+
+/- 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
@@ -1,7 +0,0 @@
-<header class="page-header">
- <h1><%= t('.title') %>:</h1>
-</header>
-
-<main role="main">
- <code id="authorization_code"><%= params[:code] %></code>
-</main>
diff --git a/app/views/doorkeeper/authorizations/show.html.haml 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
@@ -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
@@ -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
@@ -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
@@ -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