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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27a062559ce3ed39a8354ebde354c8d7977d14e9b1d9863e982987019bf7be4d
|
4
|
+
data.tar.gz: 3e7a744ca0cac8908a708685a3c198b0ec8d1608100445ad9712f30c15a5c228
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
5
|
-
|
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
|
-
|
8
|
-
|
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
|
-
|
34
|
+
E então execute o seguinte comando:
|
35
|
+
|
15
36
|
```bash
|
16
37
|
$ bundle
|
17
38
|
```
|
18
39
|
|
19
|
-
|
40
|
+
Ou Instale você mesmo manualmente com o comando abaixo :
|
41
|
+
|
20
42
|
```bash
|
21
43
|
$ gem install rbac_rls
|
22
44
|
```
|
23
|
-
|
24
|
-
|
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
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
35
|
-
|
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
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
106
|
+
|
107
|
+
Execute na linha de comando:
|
108
|
+
|
57
109
|
```bash
|
58
|
-
|
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
|
data/lib/rbac_rls/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2022-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|