rbac_rls 0.1.2 → 0.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ec44866c989046890add9f57eafc781f16a3774e54858a5f4996498fa2e96cb
4
- data.tar.gz: 1f349e1e5e4011768758345c95349984b0910d33f1652245225217fd7133a83f
3
+ metadata.gz: 27a062559ce3ed39a8354ebde354c8d7977d14e9b1d9863e982987019bf7be4d
4
+ data.tar.gz: 3e7a744ca0cac8908a708685a3c198b0ec8d1608100445ad9712f30c15a5c228
5
5
  SHA512:
6
- metadata.gz: 86ab0f00de6b4291edbdc4bfb3a8b18a9430af2bd9b3043de979731c9209314be6ba05ac5f8d58f10242957c67947203addc5c8c96d428c9960618af105e8043
7
- data.tar.gz: 43438f64d3cc5ba86face84828579bc9556e5e81cf0731f0c2aba6edc04abf0cb7f877340934c1e4c86cf5c50055a184e1c6e2b4736801ec1148df60f7b2d1f6
6
+ metadata.gz: 27559ee87603c01c7aed6426dfaefb81ee7ffdc3c36aa59116da0195c8e6555b7cce360173e5be35331ebbedbbb8d338758d53ccefda29f6a6b82ce1646887f2
7
+ data.tar.gz: 6a2fd3df7b7ed6447acc1c8c99925f51bf71a3ad1bbca8d06196ae075c3cfd0de797104f428a1b860da5cbe723b5bf27ca0fa59f72bbc0ee86051d3782b3a8db
data/README.md CHANGED
@@ -1,66 +1,121 @@
1
1
  # RbacRls
2
- Short description and motivation.
3
2
 
4
- ## Usage
5
- How to use my plugin.
3
+ Esta biblioteca tem por finalidade prover a funcionalidade de controle de acesso granular aos
4
+ dados, contribuindo para a segurança através de verificações de acesso a informação. Este
5
+ modelo tem como base os conceitos do recurso de controle de acesso RBAC(Role-Based
6
+ Access Control ) aplicados juntamente aos métodos de RLS(Row-Level Security).
6
7
 
7
- ## Installation
8
- Add this line to your application's Gemfile:
8
+ O framework proposto tem por objetivo facilitar a implantação da funcionalidade
9
+ de segurança, auxiliando o programador na implementação das políticas de restrições no
10
+ banco de dados.
11
+
12
+ ## RLS:
13
+
14
+ A segurança em nível de linha permite que você use um contexto de execução para controlar o acesso a
15
+ linhas em uma tabela de banco de dados, simplificando o design e a codificação de
16
+ segurança da sua aplicação.
17
+
18
+ ## RBAC:
19
+
20
+ O controle de acesso baseado em função (RBAC) é um modelo de restrição de que tem como base as funções de usuários
21
+ individuais em um contexto hierárquico. O RBAC garante que os usuários acessem apenas as informações de que precisam
22
+ para realizar suas rotina e os impede de acessar informações que não pertencem a eles.
23
+
24
+ # Como utilizar esta Gem ?.
25
+
26
+ ### Instalação:
27
+
28
+ Adicione esta linha no arquivo da sua aplicação Gemfile
9
29
 
10
30
  ```ruby
11
31
  gem "rbac_rls"
12
32
  ```
13
33
 
14
- And then execute:
34
+ E então execute o seguinte comando:
35
+
15
36
  ```bash
16
37
  $ bundle
17
38
  ```
18
39
 
19
- Or install it yourself as:
40
+ Ou Instale você mesmo manualmente com o comando abaixo :
41
+
20
42
  ```bash
21
43
  $ gem install rbac_rls
22
44
  ```
23
- And then add in your manifest.js:
24
- ```bash
45
+
46
+ Adicione no seu arquivo manifest.js:
47
+
48
+ ```javascript
25
49
  //= link rbac_rls/application.css
26
50
  //= link rbac_rls/application.js
27
51
  ```
28
- And then add in your application_record.rb and application_controller.rb:
29
- ```bash
30
- include ConnectionRls
31
- include ConnectionRlsUser
52
+
53
+ ##### Adicione no seu arquivo application_record.rb:
54
+
55
+ ```ruby
56
+ #Em application_record.rb
57
+ include ConnectionRlsConcern
32
58
  ```
59
+
60
+ ##### Adicione no seu arquivo application_controller.rb:
61
+
62
+ ```ruby
63
+ #Em application_controller.rb"
64
+ include ConnectionRlsUserConcern
65
+ ```
66
+
33
67
  ```bash
34
- crie um novo everioniment para rodar as migrations
35
- por exemplo: duplique um arquivo de app/config/environments configure o deu database.yml com o env
68
+ Para fazer o uso desta biblioteca é necessário que a aplicação principal, acesse o banco de dados apartir de um
69
+ usuário que não é o dono do banco de dados pois, as regras de Segurança em nivél de linha não podem ser aplicadas a
70
+ este tipo de usuário do banco de dados.
71
+ Então: apenas para casos onde seja necessario rodar migrates como administrador utilize um novo Environment ou um método
72
+ diferente de conexão com o banco que não seja como da aplicação principal
73
+ Por exemplo:
74
+ a aplicação por padrão utilizará um usuário "app_user" para suas consultas.
75
+ para rodar as migrates da aplicação o usuário padrão será "data_base_admin"
76
+ logo no environment "development" o usuário do banco de dados será :app_user
77
+ e no environment "migrations" o usuário do banco de dados será :data_base_admin
36
78
 
37
- exemplo:
38
- -----------
39
- migrations:
40
- <<: *default
41
- database: main_app_development
42
- username: username
43
- password: password
44
- -----------
79
+ Passos para criar um environment :
80
+ 1º duplique um arquivo de app/config/environments
81
+ 2º configure o deu database.yml como no exemplo abaixo:
82
+ exemplo:
83
+ -----------
84
+ migrations:
85
+ <<: *default
86
+ database: main_app_development
87
+ username: username
88
+ password: password
89
+ -----------
90
+ 3º para rodar as migrates usando este environment use um comando análogo a "rake db:migrate RAILS_ENV=migrations"
91
+
45
92
  ```
46
93
 
47
- And then run this command:
94
+ Logo após estes passos, na linha de comando execute:
95
+
48
96
  ```bash
49
97
  rake rbac_rls:install:migrations
50
98
  ```
51
99
 
52
- And then run this command:
53
- ```bash
54
- rake db:migrate
100
+ ##### Adicione na sua aplicação em config/routes.rb
101
+
102
+ ```ruby
103
+ # Em config/routes.rb adicione
104
+ mount RbacRls::Engine => :rbac_rls
55
105
  ```
56
- And then run this command:
106
+
107
+ Execute na linha de comando:
108
+
57
109
  ```bash
58
- yarn install
110
+ rake db:migrate
111
+
112
+ yarn install
59
113
  ```
60
114
 
115
+ ### após isso a bibilioteca está instalada, e pode ser acessada em /rbac_rls
61
116
 
62
- ## Contributing
63
- Contribution directions go here.
117
+ [//]: # (## Contributing)
64
118
 
65
119
  ## License
120
+
66
121
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -11,7 +11,7 @@ module ManageRlsMigrationConcern
11
11
  end
12
12
 
13
13
  def down_migrate(file_version = migration_version)
14
- return true if system(Settings.down_migrate_command(file_version))
14
+ return true if system(RbacRls::Settings.down_migrate_command(file_version))
15
15
  false
16
16
  end
17
17
 
@@ -15,7 +15,7 @@ module RbacRls
15
15
  migraion_generated = system(cmd.===) if new_record?
16
16
  migraion_generated = system(cmd.===) if persisted? and database_changed? and drop_policy()
17
17
  if migraion_generated
18
- system(Settings.run_migrate_command)
18
+ system(RbacRls::Settings.run_migrate_command)
19
19
  self.migration_version = ActiveRecord::Migrator.current_version
20
20
  end
21
21
  end
@@ -44,7 +44,7 @@ class RbacRls::Permission < ApplicationRecord
44
44
 
45
45
  if RbacRls::Permission.all.map(&:table_name).exclude?(table_name) && migration_version.nil?
46
46
  cmd = "rails generate rbac_rls:custom_migration #{table_name} #{type_policies.===} #{type_options.===}"
47
- if system(cmd) && system(Settings.run_migrate_command)
47
+ if system(cmd) && system(RbacRls::Settings.run_migrate_command)
48
48
  self.migration_version = ActiveRecord::Migrator.current_version
49
49
  end
50
50
  end
@@ -1,3 +1,3 @@
1
1
  module RbacRls
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbac_rls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - FilipeBeserraMaia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-13 00:00:00.000000000 Z
11
+ date: 2022-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails