Customizing doorkeeper views for authorizing app
This commit is contained in:
		
							parent
							
								
									d4b9b289e8
								
							
						
					
					
						commit
						b919f39b31
					
				
					 12 changed files with 78 additions and 64 deletions
				
			
		| 
						 | 
				
			
			@ -45,4 +45,4 @@ work = ->
 | 
			
		|||
    stop()
 | 
			
		||||
 | 
			
		||||
$ ->
 | 
			
		||||
  setTimeout(start, 500)
 | 
			
		||||
  setTimeout(start, 100)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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%);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
							
								
								
									
										4
									
								
								app/views/doorkeeper/authorizations/error.html.haml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								app/views/doorkeeper/authorizations/error.html.haml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
.prompt= t('doorkeeper.authorizations.error.title')
 | 
			
		||||
 | 
			
		||||
#error_explanation
 | 
			
		||||
  = @pre_auth.error_response.body[:error_description]
 | 
			
		||||
| 
						 | 
				
			
			@ -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>
 | 
			
		||||
							
								
								
									
										26
									
								
								app/views/doorkeeper/authorizations/new.html.haml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								app/views/doorkeeper/authorizations/new.html.haml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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'
 | 
			
		||||
| 
						 | 
				
			
			@ -1,7 +0,0 @@
 | 
			
		|||
<header class="page-header">
 | 
			
		||||
  <h1><%= t('.title') %>:</h1>
 | 
			
		||||
</header>
 | 
			
		||||
 | 
			
		||||
<main role="main">
 | 
			
		||||
  <code id="authorization_code"><%= params[:code] %></code>
 | 
			
		||||
</main>
 | 
			
		||||
							
								
								
									
										2
									
								
								app/views/doorkeeper/authorizations/show.html.haml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/views/doorkeeper/authorizations/show.html.haml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
.prompt= t('.title')
 | 
			
		||||
%code.copypasteable= params[:code]
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								db/schema.rb
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue