Browse Source

Fix #104 - Style OAuth authorized applications page

Add ability to search accounts by display name
closed-social-glitch-2
Eugen Rochko 7 years ago
parent
commit
175a9b9caa
9 changed files with 49 additions and 4 deletions
  1. +16
    -0
      app/controllers/settings/exports_controller.rb
  2. +1
    -1
      app/models/account.rb
  3. +1
    -0
      app/services/search_service.rb
  4. +23
    -0
      app/views/doorkeeper/authorized_applications/index.html.haml
  5. +2
    -0
      app/views/settings/exports/show.html.haml
  6. +1
    -1
      config/locales/doorkeeper.en.yml
  7. +2
    -1
      config/locales/en.yml
  8. +2
    -1
      config/navigation.rb
  9. +1
    -0
      config/routes.rb

+ 16
- 0
app/controllers/settings/exports_controller.rb View File

@ -0,0 +1,16 @@
# frozen_string_literal: true
class Settings::ExportsController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_account
def show; end
private
def set_account
@account = current_user.account
end
end

+ 1
- 1
app/models/account.rb View File

@ -52,7 +52,7 @@ class Account < ApplicationRecord
# PuSH subscriptions
has_many :subscriptions, dependent: :destroy
pg_search_scope :search_for, against: { username: 'A', domain: 'B' },
pg_search_scope :search_for, against: { display_name: 'A', username: 'B', domain: 'C' },
using: { tsearch: { prefix: true } }
scope :remote, -> { where.not(domain: nil) }

+ 1
- 0
app/services/search_service.rb View File

@ -5,6 +5,7 @@ class SearchService < BaseService
return if query.blank? || query.start_with?('#')
username, domain = query.gsub(/\A@/, '').split('@')
domain = nil if TagManager.instance.local_domain?(domain)
if domain.nil?
exact_match = Account.find_local(username)

+ 23
- 0
app/views/doorkeeper/authorized_applications/index.html.haml View File

@ -0,0 +1,23 @@
- content_for :page_title do
= t('doorkeeper.authorized_applications.index.title')
%table.table
%thead
%tr
%th= t('doorkeeper.authorized_applications.index.application')
%th= t('doorkeeper.authorized_applications.index.scopes')
%th= t('doorkeeper.authorized_applications.index.created_at')
%th
%tbody
- @applications.each do |application|
%tr
%td
- if application.website.blank?
= application.name
- else
= link_to application.name, application.website
%th= application.scopes.map { |scope| t(scope, scope: [:doorkeeper, :scopes]) }.join('<br />').html_safe
%td= l application.created_at
%td
- unless application.superapp?
= table_link_to 'times', t('doorkeeper.authorized_applications.buttons.revoke'), oauth_authorized_application_path(application), method: :delete, data: { confirm: t('doorkeeper.authorized_applications.confirmations.revoke') }

+ 2
- 0
app/views/settings/exports/show.html.haml View File

@ -0,0 +1,2 @@
- content_for :page_title do
= t('settings.export')

+ 1
- 1
config/locales/doorkeeper.en.yml View File

@ -65,7 +65,7 @@ en:
revoke: Are you sure?
index:
application: Application
created_at: Created At
created_at: Authorized
date_format: "%Y-%m-%d %H:%M:%S"
title: Your authorized applications
errors:

+ 2
- 1
config/locales/en.yml View File

@ -94,6 +94,7 @@ en:
settings:
back: Back to Mastodon
edit_profile: Edit profile
export: Data export
preferences: Preferences
settings: Settings
two_factor_auth: Two-factor Authentication
@ -118,7 +119,7 @@ en:
disable: Disable
enable: Enable
instructions_html: "<strong>Scan this QR code into Google Authenticator or a similiar app on your phone</strong>. From now on, that app will generate tokens that you will have to enter when logging in."
plaintext_secret_html: "Plain-text secret: <samp>%{secret}</samp>";
plaintext_secret_html: 'Plain-text secret: <samp>%{secret}</samp>';
warning: If you cannot configure an authenticator app right now, you should click "disable" or you won't be able to login.
users:
invalid_email: The e-mail address is invalid

+ 2
- 1
config/navigation.rb View File

@ -9,7 +9,8 @@ SimpleNavigation::Configuration.run do |navigation|
settings.item :preferences, safe_join([fa_icon('sliders fw'), t('settings.preferences')]), settings_preferences_url
settings.item :password, safe_join([fa_icon('cog fw'), t('auth.change_password')]), edit_user_registration_url
settings.item :two_factor_auth, safe_join([fa_icon('mobile fw'), t('settings.two_factor_auth')]), settings_two_factor_auth_url
# settings.item :authorized_apps, safe_join([fa_icon('list fw'), 'Authorized Apps']), oauth_authorized_applications_url
# settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
settings.item :authorized_apps, safe_join([fa_icon('list fw'), 'Authorized Apps']), oauth_authorized_applications_url
end
primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin|

+ 1
- 0
config/routes.rb View File

@ -46,6 +46,7 @@ Rails.application.routes.draw do
namespace :settings do
resource :profile, only: [:show, :update]
resource :preferences, only: [:show, :update]
resource :export, only: [:show]
resource :two_factor_auth, only: [:show] do
member do

Loading…
Cancel
Save