Skip to content

Commit

Permalink
Refactor banana to amber (#697)
Browse files Browse the repository at this point in the history
* Refactor banana to amber

* Refactor credentials

* More refactoring

* Fix linting errors

* Capitalize amber in readme

* Add migration for user provider

* Fix ENV.fetch

* Update schema
  • Loading branch information
wilco375 authored Jun 16, 2022
1 parent 09620e7 commit ffe120f
Show file tree
Hide file tree
Showing 17 changed files with 61 additions and 52 deletions.
4 changes: 2 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ POSTGRES_USER=sofia_development
POSTGRES_PASSWORD=1234567890abcdef
POSTGRES_HOST=localhost

BANANA_CLIENT_ID=
BANANA_CLIENT_SECRET=
AMBER_CLIENT_ID=
AMBER_CLIENT_SECRET=

DOCKER_PASSWORD=somethingsomething
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Alpha SOFIA
[![Continuous Integration](https://github.com/csvalpha/sofia/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/csvalpha/sofia/actions/workflows/continuous-integration.yml)
[![Continuous Delivery](https://github.com/csvalpha/sofia/actions/workflows/continuous-delivery.yml/badge.svg)](https://github.com/csvalpha/sofia/actions/workflows/continuous-delivery.yml)

The source code belonging to Alpha SOFIA. It is a system built with Ruby on Rails with Turbolinks and a little VueJS, used to manage orders in our own bar "Flux". Users authenticate via OAuth API (currently "Alpha Banana") to see how much credit they got left, or to be able to register new orders and/or payments.
The source code belonging to Alpha SOFIA. It is a system built with Ruby on Rails with Turbolinks and a little VueJS, used to manage orders in our own bar "Flux". Users authenticate via OAuth API (currently "Alpha AMBER") to see how much credit they got left, or to be able to register new orders and/or payments.

Use this repository to build upon, use as-is, learn from it, prove a point or whatever 😏

Expand All @@ -18,8 +18,8 @@ _On Linux-like systems_
- Yarn
- Postgresql 9.5+
- Running versions of
- Alpha Banana API
- Alpha Banana UI (for logging in)
- Alpha AMBER API
- Alpha AMBER UI (for logging in)

## Installation

Expand All @@ -28,7 +28,7 @@ _On Linux-like systems_
1. `bundle install` (might take a couple of minutes)
1. `yarn`
1. `bundle exec rails db:setup`
1. `bundle exec rails s -p 5000` (port specified so it doesn't use the same as Banana API)
1. `bundle exec rails s -p 5000` (port specified so it doesn't use the same as AMBER API)
1. Go to http://localhost:5000 and you should see SOFIA running
1. Copy `.env.example` to `.env` with `cp .env.example .env` and edit the values where necessary
1. (When you want to use the invoice module) Follow https://github.com/zakird/wkhtmltopdf_binary_gem#installation-and-usage
Expand All @@ -51,19 +51,19 @@ $ EDITOR="code --wait" bundle exec rails credentials:edit

### OAuth configuration

In OAuth Banana (github.com/csvalpha/alpha-banana-api), execute the following command (in `rails console`):
In OAuth AMBER (github.com/csvalpha/amber-api), execute the following command (in `rails console`):

```ruby
app = Doorkeeper::Application.create(name: 'SOFIA - Streepsysteem der C.S.V. Alpha', redirect_uri: 'http://localhost:5000/users/auth/banana_oauth2/callback', scopes: 'public tomato')
app = Doorkeeper::Application.create(name: 'SOFIA - Streepsysteem der C.S.V. Alpha', redirect_uri: 'http://localhost:5000/users/auth/amber_oauth2/callback', scopes: 'public tomato')
app.uid
app.plaintext_secret
```

Next, copy the uid and plaintext secret to the `.env` in SOFIA (as `banana_client_id` and `banana_client_secret`).
Next, copy the uid and plaintext secret to the `.env` in SOFIA (as `amber_client_id` and `amber_client_secret`).

### Configuring roles

Users can have roles in SOFIA, namely Treasurer ("SB-penningmeester") and/or Main Bartender ("Hoofdtapper"). A user can also log in without a role. These roles are derived from the groups the user is in. These groups are saved in the Banana API.
Users can have roles in SOFIA, namely Treasurer ("SB-penningmeester") and/or Main Bartender ("Hoofdtapper"). A user can also log in without a role. These roles are derived from the groups the user is in. These groups are saved in the AMBER API.

Roles are created in the following way during the seeding:

Expand All @@ -75,8 +75,8 @@ Role.create(role_type: :main_bartender, group_uid: 2)

## Deploying

Deploying procedure is the same as for the Banana project.
See [DEPLOY.md](https://github.com/csvalpha/alpha-banana-api/blob/master/DEPLOY.md) for that.
Deploying procedure is the same as for the AMBER project.
See [DEPLOY.md](https://github.com/csvalpha/amber-api/blob/master/DEPLOY.md) for that.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion app/controllers/callbacks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class CallbacksController < Devise::OmniauthCallbacksController
def banana_oauth2
def amber_oauth2
user = User.from_omniauth(request.env['omniauth.auth'])

if user.persisted?
Expand Down
16 changes: 8 additions & 8 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def index # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
authorize User

@manual_users = User.manual.active.order(:name)
@amber_users = User.in_banana.active.order(:name)
@amber_users = User.in_amber.active.order(:name)
@inactive_users = User.inactive.order(:name)
@users_credits = User.calculate_credits

Expand Down Expand Up @@ -66,7 +66,7 @@ def refresh_user_list
find_or_create_user(user_json)
end

users_not_in_json = User.active.in_banana.where.not(uid: users_json.pluck('id'))
users_not_in_json = User.active.in_amber.where.not(uid: users_json.pluck('id'))
users_not_in_json.each(&:archive!)

send_slack_users_refresh_notification
Expand All @@ -86,9 +86,9 @@ def api_token
return @token if @token

options = { grant_type: 'client_credentials',
client_id: Rails.application.config.x.banana_client_id,
client_secret: Rails.application.config.x.banana_client_secret }
token_response = RestClient.post "#{Rails.application.config.x.banana_api_url}/api/v1/oauth/token", options
client_id: Rails.application.config.x.amber_client_id,
client_secret: Rails.application.config.x.amber_client_secret }
token_response = RestClient.post "#{Rails.application.config.x.amber_api_url}/api/v1/oauth/token", options

@token = JSON.parse(token_response)['access_token']
end
Expand All @@ -112,12 +112,12 @@ def send_slack_users_refresh_notification

# :nocov:
SlackMessageJob.perform_later("User ##{current_user.id} (#{current_user.name}) "\
"is importing users from Banana (#{Rails.application.config.x.banana_api_host})")
"is importing users from Amber (#{Rails.application.config.x.amber_api_host})")
# :nocov:
end

def users_json
JSON.parse(RestClient.get("#{Rails.application.config.x.banana_api_url}/api/v1/users?filter[group]=Leden",
JSON.parse(RestClient.get("#{Rails.application.config.x.amber_api_url}/api/v1/users?filter[group]=Leden",
'Authorization' => "Bearer #{api_token}"))['data']
end

Expand All @@ -127,7 +127,7 @@ def find_or_create_user(user_json) # rubocop:disable Metrics/AbcSize
u.name = User.full_name_from_attributes(fields['first_name'],
fields['last_name_prefix'],
fields['last_name'])
u.provider = 'banana_oauth2'
u.provider = 'amber_oauth2'
u.avatar_thumb_url = fields['avatar_thumb_url']
u.email = fields['email']
u.birthday = fields['birthday']
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/zatladder_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ def current_year
end

def zatladder_spendings(from, to)
@users_spendings = User.in_banana.calculate_spendings(from: from, to: to)
zatladder = User.in_banana.select(:id, :name).map do |user|
@users_spendings = User.in_amber.calculate_spendings(from: from, to: to)
zatladder = User.in_amber.select(:id, :name).map do |user|
{
id: user.id,
name: user.name,
Expand Down
2 changes: 1 addition & 1 deletion app/jobs/credit_insufficient_notification_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def send_notification_delivery_reports(success_count, unnotifyable_users)

return unless Rails.env.production? || Rails.env.staging?

SlackMessageJob.perform_later("Er is voor #{Rails.application.config.x.banana_api_host} een saldomail "\
SlackMessageJob.perform_later("Er is voor #{Rails.application.config.x.amber_api_host} een saldomail "\
"verstuurd naar #{success_count} mensen, en #{unnotifyable_users.count} saldomail(s) kon(den) niet "\
'verzonden worden door het ontbreken van een e-mail adres.')

Expand Down
6 changes: 3 additions & 3 deletions app/models/user.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class User < ApplicationRecord
devise :omniauthable, omniauth_providers: [:banana_oauth2]
devise :omniauthable, omniauth_providers: [:amber_oauth2]
has_many :orders, dependent: :destroy
has_many :order_rows, through: :orders, dependent: :destroy
has_many :credit_mutations, dependent: :destroy
Expand All @@ -12,7 +12,7 @@ class User < ApplicationRecord
validates :uid, uniqueness: true, allow_blank: true
validate :no_deactivation_when_nonzero_credit

scope :in_banana, (-> { where(provider: 'banana_oauth2') })
scope :in_amber, (-> { where(provider: 'amber_oauth2') })
scope :manual, (-> { where(provider: nil) })
scope :active, (-> { where(deactivated: false) })
scope :inactive, (-> { where(deactivated: true) })
Expand All @@ -25,7 +25,7 @@ def credit
def avatar_thumb_or_default_url
return '/images/avatar_thumb_default.png' unless avatar_thumb_url

"#{Rails.application.config.x.banana_api_url}#{avatar_thumb_url}"
"#{Rails.application.config.x.amber_api_url}#{avatar_thumb_url}"
end

def age
Expand Down
2 changes: 1 addition & 1 deletion app/views/partials/_login_prompt.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<div class="card-body">
<p class="card-text">
Log in with a C.S.V. Alpha account.
</p><%= link_to('Sign in with C.S.V. Alpha', user_banana_oauth2_omniauth_authorize_path, class: 'btn btn-primary btn-block', method: :post) %>
</p><%= link_to('Sign in with C.S.V. Alpha', user_amber_oauth2_omniauth_authorize_path, class: 'btn btn-primary btn-block', method: :post) %>
</div>
</div>
</div>
4 changes: 2 additions & 2 deletions app/views/users/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@
<th scope="row">
Accountbron
</th>
<% if @user.provider == 'banana_oauth2' %>
<td class="text-right"><%= link_to 'C.S.V. Alpha', "#{Rails.application.config.x.banana_api_url}/users/#{@user.uid}" %>
<% if @user.provider == 'amber_oauth2' %>
<td class="text-right"><%= link_to 'C.S.V. Alpha', "#{Rails.application.config.x.amber_api_url}/users/#{@user.uid}" %>
</td>
<% else %>
<td class="text-right"><%= @user.provider || 'Handmatig aangemaakt' %>
Expand Down
14 changes: 7 additions & 7 deletions config/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ class Application < Rails::Application
# See https://github.com/kickstarter/rack-attack#getting-started
config.middleware.use Rack::Attack

config.x.banana_api_host = credentials.dig(Rails.env.to_sym, :banana_host)
config.x.banana_api_url = "#{Rails.env.development? ? 'http' : 'https'}://#{credentials.dig(Rails.env.to_sym, :banana_host)}"
config.x.amber_api_host = credentials.dig(Rails.env.to_sym, :amber_host)
config.x.amber_api_url = "#{Rails.env.development? ? 'http' : 'https'}://#{credentials.dig(Rails.env.to_sym, :amber_host)}"

config.x.banana_client_id = credentials.dig(Rails.env.to_sym, :banana_client_id) || ENV.fetch('BANANA_CLIENT_ID', nil)
config.x.banana_client_secret = credentials.dig(
Rails.env.to_sym, :banana_client_secret
) || ENV.fetch('BANANA_CLIENT_SECRET', nil)
config.x.amber_client_id = credentials.dig(Rails.env.to_sym, :amber_client_id) || ENV.fetch('AMBER_CLIENT_ID', nil)
config.x.amber_client_secret = credentials.dig(
Rails.env.to_sym, :amber_client_secret
) || ENV.fetch('AMBER_CLIENT_SECRET', nil)

config.x.banana_host = credentials.dig(Rails.env.to_sym, :banana_host)
config.x.amber_host = credentials.dig(Rails.env.to_sym, :amber_host)
config.x.tomato_host = credentials.dig(Rails.env.to_sym, :tomato_host)

config.x.slack_webhook = credentials.dig(Rails.env.to_sym, :slack_webhook) || ''
Expand Down
2 changes: 1 addition & 1 deletion config/credentials.yml.enc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
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--u0saFdSGYM4yIOgF--xmMzyDlFdnaZlRiMFVpzLA==
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--91HDlcGnjRME192Q--FHoijSpGcnpsYnoLQ/cSSw==
4 changes: 2 additions & 2 deletions config/initializers/devise.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
# ==> OmniAuth
require 'omniauth_strategies'

config.omniauth :banana_oauth2, Rails.application.config.x.banana_client_id,
Rails.application.config.x.banana_client_secret
config.omniauth :amber_oauth2, Rails.application.config.x.amber_client_id,
Rails.application.config.x.amber_client_secret
end
9 changes: 9 additions & 0 deletions db/migrate/20220612210330_update_user_provider.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class UpdateUserProvider < ActiveRecord::Migration[6.1]
def up
User.where(provider: 'banana_oauth2').update(provider: 'amber_oauth2')
end

def down
User.where(provider: 'amber_oauth2').update(provider: 'banana_oauth2')
end
end
2 changes: 1 addition & 1 deletion db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2021_10_10_095118) do
ActiveRecord::Schema.define(version: 2022_06_12_210330) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

module OmniAuth
module Strategies
class BananaOauth2 < OmniAuth::Strategies::OAuth2
option :name, 'banana_oauth2'
class AmberOauth2 < OmniAuth::Strategies::OAuth2
option :name, 'amber_oauth2'

option :client_options,
site: Rails.application.config.x.banana_api_url.to_s,
site: Rails.application.config.x.amber_api_url.to_s,
authorize_url: '/oauth/authorize',
token_url: '/api/v1/oauth/token'

Expand Down
2 changes: 1 addition & 1 deletion lib/omniauth_strategies.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
require 'omniauth/strategies/banana_oauth2'
require 'omniauth/strategies/amber_oauth2'
Loading

0 comments on commit ffe120f

Please sign in to comment.