parent
287adbd365
commit
c58358c66e
1
Gemfile
1
Gemfile
@ -42,6 +42,7 @@ gem 'rails-settings-cached', '~> 2.8.3'
|
|||||||
gem 'pagy', '~> 6.0', '>= 6.0.2'
|
gem 'pagy', '~> 6.0', '>= 6.0.2'
|
||||||
gem 'flipper'
|
gem 'flipper'
|
||||||
gem 'flipper-active_record'
|
gem 'flipper-active_record'
|
||||||
|
gem 'flipper-ui'
|
||||||
|
|
||||||
# HTTP requests
|
# HTTP requests
|
||||||
gem 'faraday'
|
gem 'faraday'
|
||||||
|
12
Gemfile.lock
12
Gemfile.lock
@ -133,6 +133,12 @@ GEM
|
|||||||
flipper-active_record (0.28.0)
|
flipper-active_record (0.28.0)
|
||||||
activerecord (>= 4.2, < 8)
|
activerecord (>= 4.2, < 8)
|
||||||
flipper (~> 0.28.0)
|
flipper (~> 0.28.0)
|
||||||
|
flipper-ui (0.28.0)
|
||||||
|
erubi (>= 1.0.0, < 2.0.0)
|
||||||
|
flipper (~> 0.28.0)
|
||||||
|
rack (>= 1.4, < 3)
|
||||||
|
rack-protection (>= 1.5.3, <= 4.0.0)
|
||||||
|
sanitize (< 7)
|
||||||
fugit (1.7.2)
|
fugit (1.7.2)
|
||||||
et-orbi (~> 1, >= 1.2.7)
|
et-orbi (~> 1, >= 1.2.7)
|
||||||
raabro (~> 1.4)
|
raabro (~> 1.4)
|
||||||
@ -204,6 +210,8 @@ GEM
|
|||||||
raabro (1.4.0)
|
raabro (1.4.0)
|
||||||
racc (1.6.0)
|
racc (1.6.0)
|
||||||
rack (2.2.4)
|
rack (2.2.4)
|
||||||
|
rack-protection (3.0.6)
|
||||||
|
rack
|
||||||
rack-test (2.0.2)
|
rack-test (2.0.2)
|
||||||
rack (>= 1.3)
|
rack (>= 1.3)
|
||||||
rails (7.0.4)
|
rails (7.0.4)
|
||||||
@ -288,6 +296,9 @@ GEM
|
|||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
rufus-scheduler (3.8.2)
|
rufus-scheduler (3.8.2)
|
||||||
fugit (~> 1.1, >= 1.1.6)
|
fugit (~> 1.1, >= 1.1.6)
|
||||||
|
sanitize (6.0.1)
|
||||||
|
crass (~> 1.0.2)
|
||||||
|
nokogiri (>= 1.12.0)
|
||||||
sentry-rails (5.8.0)
|
sentry-rails (5.8.0)
|
||||||
railties (>= 5.0)
|
railties (>= 5.0)
|
||||||
sentry-ruby (~> 5.8.0)
|
sentry-ruby (~> 5.8.0)
|
||||||
@ -381,6 +392,7 @@ DEPENDENCIES
|
|||||||
faraday
|
faraday
|
||||||
flipper
|
flipper
|
||||||
flipper-active_record
|
flipper-active_record
|
||||||
|
flipper-ui
|
||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder (~> 2.7)
|
jbuilder (~> 2.7)
|
||||||
letter_opener
|
letter_opener
|
||||||
|
@ -114,6 +114,10 @@ command:
|
|||||||
* [Sidekiq](https://github.com/mperham/sidekiq/wiki/)
|
* [Sidekiq](https://github.com/mperham/sidekiq/wiki/)
|
||||||
* [ActiveJob](https://github.com/mperham/sidekiq/wiki/Active-Job)
|
* [ActiveJob](https://github.com/mperham/sidekiq/wiki/Active-Job)
|
||||||
|
|
||||||
|
### Feature Flags
|
||||||
|
|
||||||
|
* [Flipper](https://www.flippercloud.io/docs/get-started/self-hosted)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
[GNU Affero General Public License v3.0](https://choosealicense.com/licenses/agpl-3.0/)
|
||||||
|
30
app/controllers/services/remotestorage_controller.rb
Normal file
30
app/controllers/services/remotestorage_controller.rb
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
class Services::RemotestorageController < ApplicationController
|
||||||
|
before_action :require_user_signed_in
|
||||||
|
before_action :require_service_enabled
|
||||||
|
before_action :require_feature_enabled
|
||||||
|
before_action :set_current_section
|
||||||
|
|
||||||
|
def dashboard
|
||||||
|
# unless current_user.services_enabled.include?(:remotestorage)
|
||||||
|
# redirect_to service_remotestorage_info_path
|
||||||
|
# end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def require_feature_enabled
|
||||||
|
unless Flipper.enabled?(:remotestorage, current_user)
|
||||||
|
http_status :forbidden
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def require_service_enabled
|
||||||
|
unless Setting.remotestorage_enabled?
|
||||||
|
http_status :not_found
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def set_current_section
|
||||||
|
@current_section = :services
|
||||||
|
end
|
||||||
|
end
|
@ -6,6 +6,10 @@
|
|||||||
<h3>Account</h3>
|
<h3>Account</h3>
|
||||||
<table class="divided">
|
<table class="divided">
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<td><%= @user.id %></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Created at</th>
|
<th>Created at</th>
|
||||||
<td><%= @user.created_at.strftime("%Y-%m-%d (%H:%M UTC)") %></td>
|
<td><%= @user.created_at.strftime("%Y-%m-%d (%H:%M UTC)") %></td>
|
||||||
|
@ -73,6 +73,17 @@
|
|||||||
</p>
|
</p>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<% if Setting.remotestorage_enabled? && Flipper.enabled?(:remotestorage, current_user) %>
|
||||||
|
<div class="border border-gray-300 rounded-md hover:border-gray-400">
|
||||||
|
<%= link_to services_storage_path,
|
||||||
|
class: "block h-full px-6 py-6 rounded-md" do %>
|
||||||
|
<h3 class="mb-3.5">Storage</h3>
|
||||||
|
<p class="text-gray-600">
|
||||||
|
Sync your data between apps and devices
|
||||||
|
</p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
<!-- <div class="border border-gray-300 rounded-md hover:border-gray-400 -->
|
<!-- <div class="border border-gray-300 rounded-md hover:border-gray-400 -->
|
||||||
<!-- bg-[length:80%] bg-[right_top_-30px] bg-no-repeat -->
|
<!-- bg-[length:80%] bg-[right_top_-30px] bg-no-repeat -->
|
||||||
<!-- bg-[url(/img/logos/icon_mastodon.svg)]"> -->
|
<!-- bg-[url(/img/logos/icon_mastodon.svg)]"> -->
|
||||||
|
7
app/views/services/remotestorage/dashboard.html.erb
Normal file
7
app/views/services/remotestorage/dashboard.html.erb
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<%= render HeaderComponent.new(title: "Storage") %>
|
||||||
|
|
||||||
|
<%= render MainSimpleComponent.new do %>
|
||||||
|
<section>
|
||||||
|
<h3>Feature enabled</h3>
|
||||||
|
</section>
|
||||||
|
<% end %>
|
@ -19,6 +19,8 @@ Rails.application.routes.draw do
|
|||||||
resources :invitations, only: ['index', 'show', 'create', 'destroy']
|
resources :invitations, only: ['index', 'show', 'create', 'destroy']
|
||||||
|
|
||||||
namespace :services do
|
namespace :services do
|
||||||
|
get 'storage', to: 'remotestorage#dashboard'
|
||||||
|
|
||||||
resources :lightning, only: [:index] do
|
resources :lightning, only: [:index] do
|
||||||
collection do
|
collection do
|
||||||
get 'transactions'
|
get 'transactions'
|
||||||
@ -62,6 +64,7 @@ Rails.application.routes.draw do
|
|||||||
|
|
||||||
authenticate :user, ->(user) { user.is_admin? } do
|
authenticate :user, ->(user) { user.is_admin? } do
|
||||||
mount Sidekiq::Web => '/sidekiq'
|
mount Sidekiq::Web => '/sidekiq'
|
||||||
|
mount Flipper::UI.app(Flipper) => '/flipper'
|
||||||
end
|
end
|
||||||
|
|
||||||
# Letter Opener (open "sent" emails in dev and staging)
|
# Letter Opener (open "sent" emails in dev and staging)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user