Fix #104 - Style OAuth authorized applications page
Add ability to search accounts by display namegh/stable
parent
2826e6dada
commit
175a9b9caa
|
@ -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
|
|
@ -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) }
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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') }
|
|
@ -0,0 +1,2 @@
|
||||||
|
- content_for :page_title do
|
||||||
|
= t('settings.export')
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Reference in New Issue