uffizzi_core 0.8.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/contexts/uffizzi_core/account_context.rb +12 -0
  3. data/app/contexts/uffizzi_core/base_context.rb +1 -2
  4. data/app/contexts/uffizzi_core/project_context.rb +2 -2
  5. data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +6 -0
  6. data/app/controllers/uffizzi_core/api/cli/v1/accounts/application_controller.rb +11 -0
  7. data/app/controllers/uffizzi_core/api/cli/v1/{account → accounts}/credentials_controller.rb +2 -2
  8. data/app/controllers/uffizzi_core/api/cli/v1/accounts/projects_controller.rb +34 -0
  9. data/app/controllers/uffizzi_core/api/cli/v1/ci/application_controller.rb +5 -0
  10. data/app/controllers/uffizzi_core/api/cli/v1/ci/sessions_controller.rb +36 -0
  11. data/app/controllers/uffizzi_core/api/cli/v1/projects/application_controller.rb +5 -1
  12. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/activity_items_controller.rb +8 -1
  13. data/app/controllers/uffizzi_core/api/cli/v1/projects_controller.rb +12 -26
  14. data/app/controllers/uffizzi_core/application_controller.rb +6 -0
  15. data/app/lib/uffizzi_core/concerns/models/account.rb +0 -1
  16. data/app/lib/uffizzi_core/concerns/models/project.rb +0 -1
  17. data/app/lib/uffizzi_core/concerns/models/user_project.rb +1 -1
  18. data/app/models/uffizzi_core/project.rb +1 -0
  19. data/app/policies/uffizzi_core/api/cli/v1/{account → accounts}/credentials_policy.rb +1 -1
  20. data/app/policies/uffizzi_core/api/cli/v1/accounts/projects_policy.rb +7 -0
  21. data/app/policies/uffizzi_core/api/cli/v1/projects_policy.rb +0 -4
  22. data/app/serializers/uffizzi_core/api/cli/v1/{account → accounts}/credential_serializer.rb +1 -1
  23. data/app/serializers/uffizzi_core/api/cli/v1/accounts/project_serializer.rb +11 -0
  24. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer/account_serializer.rb +5 -0
  25. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer.rb +1 -0
  26. data/app/serializers/uffizzi_core/api/cli/v1/short_project_serializer.rb +1 -1
  27. data/app/serializers/uffizzi_core/api/cli/v1/user_serializer/account_serializer.rb +1 -1
  28. data/config/locales/en.yml +5 -0
  29. data/config/routes.rb +8 -3
  30. data/lib/uffizzi_core/version.rb +1 -1
  31. data/lib/uffizzi_core.rb +1 -0
  32. metadata +13 -8
  33. data/app/controllers/uffizzi_core/api/cli/v1/account/application_controller.rb +0 -7
  34. data/app/lib/uffizzi_core/concerns/models/invitation.rb +0 -31
  35. data/app/models/uffizzi_core/invitation.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8dea69b2a59531600dfb66428f656f48199aca57b46090feb7908c4c2649d6a0
4
- data.tar.gz: '0049394671ce7727844814ebe46a671a9a1d420063546d5d12faf1d61748f5bb'
3
+ metadata.gz: 9e845782f77d940f0bf244d792b59cab89df2712937e6b77f3bec3bc62653f3b
4
+ data.tar.gz: eb8a760d66cbdc40b7e441a783870483ca3c72ffe8fa212e4ee93aa9c9718bf1
5
5
  SHA512:
6
- metadata.gz: 278c7ce3923efa9d4db4476eb3ddad88c28b664af7fbf75a0c7547921d478ad6860fd7ea5987932bbcdcf1d01a418c55bac388a864e1f186468d3ec163f911cf
7
- data.tar.gz: 83927e7d75d0e926cc1d42f16f31c9e086de1daedd33cb1315b60e118896f9d90b3ee102893ef7e9716e7e354c793610e609ae64aaf7be1657694fe166a62480
6
+ metadata.gz: 4e6093cb8c244cf7c22044add288ee501c94968436407d2138c32763806266d4877d6c915464cc988d868e91ac0ae50e47fac05408e7e2d432638bfd15929a0e
7
+ data.tar.gz: 29c118eb1355950bf9ce5c590e4562490dec59fc1ca9cbbb4028d504f2a28b7cc155fd471f74948796a0f213cabe4c68330921dd9a6caa24ac41247e3f139bf6
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::AccountContext
4
+ attr_reader :user, :user_access_module, :account, :params
5
+
6
+ def initialize(user, user_access_module, account, params)
7
+ @user = user
8
+ @user_access_module = user_access_module
9
+ @account = account
10
+ @params = params
11
+ end
12
+ end
@@ -1,12 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::BaseContext
4
- attr_reader :user, :user_access_module, :params, :account
4
+ attr_reader :user, :user_access_module, :params
5
5
 
6
6
  def initialize(user, user_access_module, params)
7
7
  @user = user
8
8
  @user_access_module = user_access_module
9
- @account = user.organizational_account
10
9
  @params = params
11
10
  end
12
11
  end
@@ -3,10 +3,10 @@
3
3
  class UffizziCore::ProjectContext
4
4
  attr_reader :user, :user_access_module, :project, :account, :params
5
5
 
6
- def initialize(user, user_access_module, project, params)
6
+ def initialize(user, user_access_module, project, account, params)
7
7
  @user = user
8
8
  @user_access_module = user_access_module
9
- @account = user.organizational_account
9
+ @account = account
10
10
  @project = project
11
11
  @params = params
12
12
  end
@@ -15,6 +15,12 @@ module UffizziCore::DependencyInjectionConcern
15
15
  module_class(:volume_parser)
16
16
  end
17
17
 
18
+ def ci_session
19
+ return unless module_exists?(:ci_session)
20
+
21
+ module_class(:ci_session)
22
+ end
23
+
18
24
  def password_protection_module
19
25
  return unless module_exists?(:password_protection)
20
26
 
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::Accounts::ApplicationController < UffizziCore::Api::Cli::V1::ApplicationController
4
+ def resource_account
5
+ @resource_account ||= current_user.accounts.find(params[:account_id])
6
+ end
7
+
8
+ def policy_context
9
+ UffizziCore::AccountContext.new(current_user, user_access_module, resource_account, params)
10
+ end
11
+ end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # @resource Account/Credential
4
- class UffizziCore::Api::Cli::V1::Account::CredentialsController < UffizziCore::Api::Cli::V1::Account::ApplicationController
5
- before_action :authorize_uffizzi_core_api_cli_v1_account_credentials
4
+ class UffizziCore::Api::Cli::V1::Accounts::CredentialsController < UffizziCore::Api::Cli::V1::Accounts::ApplicationController
5
+ before_action :authorize_uffizzi_core_api_cli_v1_accounts_credentials
6
6
 
7
7
  # Get a list of accounts credential
8
8
  #
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @resource Project
4
+
5
+ class UffizziCore::Api::Cli::V1::Accounts::ProjectsController < UffizziCore::Api::Cli::V1::Accounts::ApplicationController
6
+ before_action :authorize_uffizzi_core_api_cli_v1_accounts_projects
7
+
8
+ # Create a project
9
+ #
10
+ # @path [POST] /api/cli/v1/accounts/{account_id}/projects
11
+ # @parameter params(required,body) [object<name: string, slug: string, description: string>]
12
+ #
13
+ # @response <object< project: Project>> 200 OK
14
+ # @response 404 Not Found
15
+ # @response 401 Not authorized
16
+ # @response [object<errors: object<password: string >>] 422 Unprocessable entity
17
+
18
+ def create
19
+ project_form = UffizziCore::Api::Cli::V1::Project::CreateForm.new(project_params)
20
+ project_form.account = current_user.organizational_account
21
+
22
+ if project_form.save
23
+ UffizziCore::ProjectService.add_users_to_project!(project_form, current_user)
24
+ end
25
+
26
+ respond_with project_form
27
+ end
28
+
29
+ private
30
+
31
+ def project_params
32
+ params.require(:project)
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::Ci::ApplicationController < UffizziCore::Api::Cli::V1::ApplicationController
4
+ before_action :authenticate_request!
5
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # @resource Uffizzi
4
+
5
+ class UffizziCore::Api::Cli::V1::Ci::SessionsController < UffizziCore::Api::Cli::V1::Ci::ApplicationController
6
+ skip_before_action :authenticate_request!, only: [:create]
7
+
8
+ # Create session
9
+ #
10
+ # @path [POST] /api/cli/v1/github/session
11
+ #
12
+ # @parameter user(required,body) [object<token: string >]
13
+ # @response [object<account_id: string, project_slug: string>] 201 Created successfully
14
+ # @response [object<errors: object<token: string >>] 422 Unprocessable entity
15
+ def create
16
+ return render json: { errors: { title: [I18n.t('session.unsupported_login_type')] } }, status: :unprocessable_entity unless ci_session
17
+
18
+ session_data, errors = ci_session.session_data_from_ci(user_params)
19
+ return render json: { errors: errors }, status: :unprocessable_entity if errors.present?
20
+
21
+ sign_in(session_data[:user])
22
+
23
+ data = {
24
+ account_id: session_data[:account_id],
25
+ project_slug: session_data[:project_slug],
26
+ }
27
+
28
+ render json: data, status: :created
29
+ end
30
+
31
+ private
32
+
33
+ def user_params
34
+ params.require(:user).permit(:token)
35
+ end
36
+ end
@@ -5,7 +5,11 @@ class UffizziCore::Api::Cli::V1::Projects::ApplicationController < UffizziCore::
5
5
  @resource_project ||= current_user.projects.find_by!(slug: params[:project_slug])
6
6
  end
7
7
 
8
+ def resource_account
9
+ @resource_account ||= resource_project.account
10
+ end
11
+
8
12
  def policy_context
9
- UffizziCore::ProjectContext.new(current_user, user_access_module, resource_project, params)
13
+ UffizziCore::ProjectContext.new(current_user, user_access_module, resource_project, resource_account, params)
10
14
  end
11
15
  end
@@ -15,7 +15,14 @@ class UffizziCore::Api::Cli::V1::Projects::Deployments::ActivityItemsController
15
15
  # @response 401 Not authorized
16
16
  # @response 404 Not found
17
17
  def index
18
- activity_items = resource_deployment
18
+ deployment = resource_project.deployments.existed.find(params[:deployment_id])
19
+
20
+ unless deployment.active?
21
+ return render json: { errors: { title: [I18n.t('deployment.invalid_state', state: deployment.state)] } },
22
+ status: :unprocessable_entity
23
+ end
24
+
25
+ activity_items = deployment
19
26
  .activity_items
20
27
  .page(page)
21
28
  .per(per_page)
@@ -25,30 +25,7 @@ class UffizziCore::Api::Cli::V1::ProjectsController < UffizziCore::Api::Cli::V1:
25
25
  # @response 404 Not Found
26
26
  # @response 401 Not authorized
27
27
  def show
28
- project = current_user.projects.find_by!(slug: params[:slug])
29
-
30
- respond_with project
31
- end
32
-
33
- # Create a project
34
- #
35
- # @path [POST] /api/cli/v1/projects
36
- # @parameter params(required,body) [object<name: string, slug: string, description: string>]
37
- #
38
- # @response <object< project: Project>> 200 OK
39
- # @response 404 Not Found
40
- # @response 401 Not authorized
41
- # @response [object<errors: object<password: string >>] 422 Unprocessable entity
42
-
43
- def create
44
- project_form = UffizziCore::Api::Cli::V1::Project::CreateForm.new(project_params)
45
- project_form.account = current_user.organizational_account
46
-
47
- if project_form.save
48
- UffizziCore::ProjectService.add_users_to_project!(project_form, current_user)
49
- end
50
-
51
- respond_with project_form
28
+ respond_with resource_project
52
29
  end
53
30
 
54
31
  # Delete a project
@@ -60,8 +37,7 @@ class UffizziCore::Api::Cli::V1::ProjectsController < UffizziCore::Api::Cli::V1:
60
37
  # @response 401 Not authorized
61
38
 
62
39
  def destroy
63
- project = current_user.organizational_account.active_projects.find_by!(slug: params[:slug])
64
- project.disable!
40
+ resource_project.disable!
65
41
 
66
42
  head :no_content
67
43
  end
@@ -71,4 +47,14 @@ class UffizziCore::Api::Cli::V1::ProjectsController < UffizziCore::Api::Cli::V1:
71
47
  def project_params
72
48
  params.require(:project)
73
49
  end
50
+
51
+ def resource_project
52
+ @resource_project ||= current_user.projects.find_by(slug: params[:slug])
53
+ end
54
+
55
+ def policy_context
56
+ account = resource_project&.account || current_user.organizational_account
57
+
58
+ UffizziCore::AccountContext.new(current_user, user_access_module, account, params)
59
+ end
74
60
  end
@@ -19,10 +19,16 @@ class UffizziCore::ApplicationController < ActionController::Base
19
19
  render_not_found(exception)
20
20
  end
21
21
 
22
+ rescue_from Pundit::NotAuthorizedError, with: :render_not_authorized
23
+
22
24
  before_action :authenticate_request!
23
25
  skip_before_action :verify_authenticity_token
24
26
  respond_to :json
25
27
 
28
+ def render_not_authorized
29
+ render json: { errors: { title: [I18n.t('session.unauthorized')] } }, status: :forbidden
30
+ end
31
+
26
32
  def policy_context
27
33
  UffizziCore::BaseContext.new(current_user, user_access_module, params)
28
34
  end
@@ -24,7 +24,6 @@ module UffizziCore::Concerns::Models::Account
24
24
  has_many :projects, dependent: :destroy
25
25
  has_many :deployments, through: :projects
26
26
  has_many :payments, dependent: :destroy
27
- has_many :invitations, as: :entityable
28
27
 
29
28
  aasm(:state) do
30
29
  state :active, initial: true
@@ -16,7 +16,6 @@ module UffizziCore::Concerns::Models::Project
16
16
  has_many :deployments, dependent: :destroy
17
17
  has_many :user_projects, dependent: :destroy
18
18
  has_many :users, through: :user_projects
19
- has_many :invitations, as: :entityable
20
19
  has_many :config_files, dependent: :destroy
21
20
  has_many :templates, dependent: :destroy
22
21
  has_many :credentials, through: :account
@@ -8,7 +8,7 @@ module UffizziCore::Concerns::Models::UserProject
8
8
 
9
9
  self.table_name = UffizziCore.table_names[:user_projects]
10
10
 
11
- enumerize :role, in: UffizziCore.user_project_roles, predicates: true
11
+ enumerize :role, in: UffizziCore.user_project_roles, predicates: true, scope: true
12
12
  validates :role, presence: true
13
13
 
14
14
  belongs_to :user
@@ -8,6 +8,7 @@
8
8
  # @property secrets [string]
9
9
  # @property default_compose [object<source: string>]
10
10
  # @property deployments [object<id: integer, domain: string>]
11
+ # @property account [object<id: integer, kind: string, state: string>]
11
12
 
12
13
  class UffizziCore::Project < UffizziCore::ApplicationRecord
13
14
  include UffizziCore::Concerns::Models::Project
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class UffizziCore::Api::Cli::V1::Account::CredentialsPolicy < UffizziCore::ApplicationPolicy
3
+ class UffizziCore::Api::Cli::V1::Accounts::CredentialsPolicy < UffizziCore::ApplicationPolicy
4
4
  def index?
5
5
  context.user_access_module.admin_access_to_account?(context.user, context.account)
6
6
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::Accounts::ProjectsPolicy < UffizziCore::ApplicationPolicy
4
+ def create?
5
+ context.user_access_module.admin_or_developer_access_to_account?(context.user, context.account)
6
+ end
7
+ end
@@ -9,10 +9,6 @@ class UffizziCore::Api::Cli::V1::ProjectsPolicy < UffizziCore::ApplicationPolicy
9
9
  context.user_access_module.any_access_to_account?(context.user, context.account)
10
10
  end
11
11
 
12
- def create?
13
- context.user_access_module.admin_or_developer_access_to_account?(context.user, context.account)
14
- end
15
-
16
12
  def destroy?
17
13
  context.user_access_module.admin_or_developer_access_to_account?(context.user, context.account)
18
14
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class UffizziCore::Api::Cli::V1::Account::CredentialSerializer < UffizziCore::BaseSerializer
3
+ class UffizziCore::Api::Cli::V1::Accounts::CredentialSerializer < UffizziCore::BaseSerializer
4
4
  attributes :id, :username, :password, :type, :state
5
5
 
6
6
  def password
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::Accounts::ProjectSerializer < UffizziCore::BaseSerializer
4
+ type :project
5
+
6
+ attributes :name,
7
+ :slug,
8
+ :account_id,
9
+ :description,
10
+ :created_at
11
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Api::Cli::V1::ProjectSerializer::AccountSerializer < UffizziCore::BaseSerializer
4
+ attributes :id, :kind, :state, :name
5
+ end
@@ -5,6 +5,7 @@ class UffizziCore::Api::Cli::V1::ProjectSerializer < UffizziCore::BaseSerializer
5
5
  has_many :deployments
6
6
  has_many :secrets
7
7
  has_one :default_compose
8
+ belongs_to :account
8
9
 
9
10
  attributes :name,
10
11
  :slug,
@@ -3,5 +3,5 @@
3
3
  class UffizziCore::Api::Cli::V1::ShortProjectSerializer < UffizziCore::BaseSerializer
4
4
  type :project
5
5
 
6
- attributes :name, :slug
6
+ attributes :name, :slug, :account_id
7
7
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Api::Cli::V1::UserSerializer::AccountSerializer < UffizziCore::BaseSerializer
4
- attributes :id, :state
4
+ attributes :id, :kind, :state, :name
5
5
  end
@@ -70,3 +70,8 @@ en:
70
70
  secrets:
71
71
  duplicates_exists: Secret with key %{secrets} already exist.
72
72
  invalid_key_length: A secret key must be no longer than 256 characters.
73
+ deployment:
74
+ invalid_state: Deployment %{state}
75
+ session:
76
+ unsupported_login_type: This type of login is not supported
77
+ unauthorized: Unauthorized
data/config/routes.rb CHANGED
@@ -7,7 +7,7 @@ UffizziCore::Engine.routes.draw do
7
7
  namespace :api, defaults: { format: :json } do
8
8
  namespace :cli do
9
9
  namespace :v1 do
10
- resources :projects, only: ['index', 'show', 'create', 'destroy'], param: :slug do
10
+ resources :projects, only: ['index', 'show', 'destroy'], param: :slug do
11
11
  scope module: :projects do
12
12
  resource :compose_file, only: ['show', 'create', 'destroy']
13
13
  resources :deployments, only: ['index', 'show', 'create', 'destroy', 'update'] do
@@ -36,8 +36,13 @@ UffizziCore::Engine.routes.draw do
36
36
  end
37
37
  resource :session, only: ['create', 'destroy']
38
38
 
39
- resource :account, only: [] do
40
- scope module: :account do
39
+ namespace :ci do
40
+ resource :session, only: ['create']
41
+ end
42
+
43
+ resources :accounts, only: [] do
44
+ scope module: :accounts do
45
+ resources :projects, only: ['create']
41
46
  resources :credentials, only: ['index', 'create', 'update', 'destroy'], param: :type do
42
47
  member do
43
48
  get :check_credential
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UffizziCore
4
- VERSION = '0.8.0'
4
+ VERSION = '1.0.0'
5
5
  end
data/lib/uffizzi_core.rb CHANGED
@@ -60,4 +60,5 @@ module UffizziCore
60
60
  }
61
61
  mattr_accessor :user_creation_sources, default: [:system, :online_registration, :google, :sso]
62
62
  mattr_accessor :user_project_roles, default: [:admin, :developer, :viewer]
63
+ mattr_accessor :account_sources, default: [:manual]
63
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uffizzi_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Thurman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-08-25 00:00:00.000000000 Z
12
+ date: 2022-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
@@ -701,15 +701,19 @@ files:
701
701
  - app/clients/uffizzi_core/github_container_registry_client/request_result.rb
702
702
  - app/clients/uffizzi_core/google_registry_client.rb
703
703
  - app/clients/uffizzi_core/google_registry_client/request_result.rb
704
+ - app/contexts/uffizzi_core/account_context.rb
704
705
  - app/contexts/uffizzi_core/base_context.rb
705
706
  - app/contexts/uffizzi_core/project_context.rb
706
707
  - app/contexts/uffizzi_core/webhooks_context.rb
707
708
  - app/controllers/concerns/uffizzi_core/auth_management.rb
708
709
  - app/controllers/concerns/uffizzi_core/authorization_concern.rb
709
710
  - app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb
710
- - app/controllers/uffizzi_core/api/cli/v1/account/application_controller.rb
711
- - app/controllers/uffizzi_core/api/cli/v1/account/credentials_controller.rb
711
+ - app/controllers/uffizzi_core/api/cli/v1/accounts/application_controller.rb
712
+ - app/controllers/uffizzi_core/api/cli/v1/accounts/credentials_controller.rb
713
+ - app/controllers/uffizzi_core/api/cli/v1/accounts/projects_controller.rb
712
714
  - app/controllers/uffizzi_core/api/cli/v1/application_controller.rb
715
+ - app/controllers/uffizzi_core/api/cli/v1/ci/application_controller.rb
716
+ - app/controllers/uffizzi_core/api/cli/v1/ci/sessions_controller.rb
713
717
  - app/controllers/uffizzi_core/api/cli/v1/projects/application_controller.rb
714
718
  - app/controllers/uffizzi_core/api/cli/v1/projects/compose_files_controller.rb
715
719
  - app/controllers/uffizzi_core/api/cli/v1/projects/deployments/activity_items_controller.rb
@@ -774,7 +778,6 @@ files:
774
778
  - app/lib/uffizzi_core/concerns/models/credential.rb
775
779
  - app/lib/uffizzi_core/concerns/models/deployment.rb
776
780
  - app/lib/uffizzi_core/concerns/models/event.rb
777
- - app/lib/uffizzi_core/concerns/models/invitation.rb
778
781
  - app/lib/uffizzi_core/concerns/models/membership.rb
779
782
  - app/lib/uffizzi_core/concerns/models/payment.rb
780
783
  - app/lib/uffizzi_core/concerns/models/price.rb
@@ -817,7 +820,6 @@ files:
817
820
  - app/models/uffizzi_core/database_offering.rb
818
821
  - app/models/uffizzi_core/deployment.rb
819
822
  - app/models/uffizzi_core/event.rb
820
- - app/models/uffizzi_core/invitation.rb
821
823
  - app/models/uffizzi_core/membership.rb
822
824
  - app/models/uffizzi_core/payment.rb
823
825
  - app/models/uffizzi_core/price.rb
@@ -836,7 +838,8 @@ files:
836
838
  - app/models/uffizzi_core/template.rb
837
839
  - app/models/uffizzi_core/user.rb
838
840
  - app/models/uffizzi_core/user_project.rb
839
- - app/policies/uffizzi_core/api/cli/v1/account/credentials_policy.rb
841
+ - app/policies/uffizzi_core/api/cli/v1/accounts/credentials_policy.rb
842
+ - app/policies/uffizzi_core/api/cli/v1/accounts/projects_policy.rb
840
843
  - app/policies/uffizzi_core/api/cli/v1/projects/compose_files_policy.rb
841
844
  - app/policies/uffizzi_core/api/cli/v1/projects/deployments/activity_items_policy.rb
842
845
  - app/policies/uffizzi_core/api/cli/v1/projects/deployments/containers_policy.rb
@@ -864,8 +867,10 @@ files:
864
867
  - app/repositories/uffizzi_core/usage_repo.rb
865
868
  - app/repositories/uffizzi_core/user_repo.rb
866
869
  - app/responders/uffizzi_core/json_responder.rb
867
- - app/serializers/uffizzi_core/api/cli/v1/account/credential_serializer.rb
870
+ - app/serializers/uffizzi_core/api/cli/v1/accounts/credential_serializer.rb
871
+ - app/serializers/uffizzi_core/api/cli/v1/accounts/project_serializer.rb
868
872
  - app/serializers/uffizzi_core/api/cli/v1/project_serializer.rb
873
+ - app/serializers/uffizzi_core/api/cli/v1/project_serializer/account_serializer.rb
869
874
  - app/serializers/uffizzi_core/api/cli/v1/project_serializer/compose_file_serializer.rb
870
875
  - app/serializers/uffizzi_core/api/cli/v1/project_serializer/deployment_serializer.rb
871
876
  - app/serializers/uffizzi_core/api/cli/v1/projects/compose_file_serializer.rb
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class UffizziCore::Api::Cli::V1::Account::ApplicationController < UffizziCore::Api::Cli::V1::ApplicationController
4
- def resource_account
5
- @resource_account ||= current_user.organizational_account
6
- end
7
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module UffizziCore::Concerns::Models::Invitation
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- include AASM
8
- include UffizziCore::StateMachineConcern
9
- extend Enumerize
10
-
11
- self.table_name = UffizziCore.table_names[:invitations]
12
-
13
- enumerize :role, in: [:admin, :developer, :viewer], predicates: true
14
-
15
- belongs_to :entityable, polymorphic: true
16
- belongs_to :invited_by, class_name: UffizziCore::User.name, foreign_key: :invited_by_id
17
- belongs_to :invitee, class_name: UffizziCore::User.name, foreign_key: :invitee_id, optional: true
18
-
19
- validates :email, presence: true, 'uffizzi_core/email': true
20
- validates :token, presence: true, uniqueness: true
21
-
22
- aasm(:status) do
23
- state :pending, initial: true
24
- state :accepted
25
-
26
- event :accept do
27
- transitions from: :pending, to: :accepted
28
- end
29
- end
30
- end
31
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class UffizziCore::Invitation < UffizziCore::ApplicationRecord
4
- include UffizziCore::Concerns::Models::Invitation
5
- end