Fix #104 - Style OAuth authorized applications page

Add ability to search accounts by display name
This commit is contained in:
Eugen Rochko 2017-02-27 00:15:00 +01:00
parent 2826e6dada
commit 175a9b9caa
9 changed files with 49 additions and 4 deletions

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

View file

@ -52,7 +52,7 @@ class Account < ApplicationRecord
# PuSH subscriptions # PuSH subscriptions
has_many :subscriptions, dependent: :destroy 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 } } using: { tsearch: { prefix: true } }
scope :remote, -> { where.not(domain: nil) } scope :remote, -> { where.not(domain: nil) }

View file

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

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') }

View file

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

View file

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

View file

@ -94,6 +94,7 @@ en:
settings: settings:
back: Back to Mastodon back: Back to Mastodon
edit_profile: Edit profile edit_profile: Edit profile
export: Data export
preferences: Preferences preferences: Preferences
settings: Settings settings: Settings
two_factor_auth: Two-factor Authentication two_factor_auth: Two-factor Authentication
@ -118,7 +119,7 @@ en:
disable: Disable disable: Disable
enable: Enable 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." 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. warning: If you cannot configure an authenticator app right now, you should click "disable" or you won't be able to login.
users: users:
invalid_email: The e-mail address is invalid invalid_email: The e-mail address is invalid

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 :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 :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 :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 end
primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin| primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin|

View file

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