decidim-access_requests 0.16.0 → 0.16.1
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 +4 -4
- data/README.md +109 -4
- data/Rakefile +32 -2
- data/app/controllers/decidim/access_requests/verification/admin/granted_authorizations_controller.rb +2 -4
- data/app/controllers/decidim/access_requests/verification/admin/pending_authorizations_controller.rb +2 -4
- data/app/views/decidim/access_requests/verification/admin/granted_authorizations/index.html.erb +1 -0
- data/app/views/decidim/access_requests/verification/admin/pending_authorizations/index.html.erb +1 -0
- data/config/locales/fi.yml +2 -1
- data/config/locales/sv.yml +1 -2
- data/lib/decidim/access_requests/generators/app_templates/en.yml +6 -0
- data/lib/decidim/access_requests/generators/app_templates/initializer.rb +6 -0
- data/lib/decidim/access_requests/verification/engine.rb +7 -0
- data/lib/decidim/access_requests/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91eed9a9b7e634c1588f106f7b444c9a698953f10b8a3a6ffe00ed65b130ad74
|
4
|
+
data.tar.gz: dbf8ac7c5068bfcec1e58fb4b70ed461e4424a73d07b1b8dbd8ced9ba0ac5e05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23c776bd1de10ceb68312c21159841268b06db22467ba1895212cd0c3f5e04433629b4b283c5088060b9e2ee799837a7b7b040e7cd423911defa9f99ce161fa9
|
7
|
+
data.tar.gz: db55e41c202e1cd493821ae1e743c544854bf4c5c30adad869652beb24ea6d25ca23751a9b5a21990ea845dd4924167a206492cd321c9bdbd0c356225be21766
|
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Decidim::AccessRequests
|
2
2
|
|
3
|
+
[](https://travis-ci.com/mainio/decidim-module-access_requests)
|
4
|
+
[](https://codecov.io/gh/mainio/decidim-module-access_requests)
|
5
|
+
|
6
|
+
The gem has been developed by [Mainio Tech](https://www.mainiotech.fi/).
|
7
|
+
|
3
8
|
A [Decidim](https://github.com/decidim/decidim) module that provides a new
|
4
9
|
verification method that allows system administrators to define new verification
|
5
10
|
workflows where the admins can provide access to specific users.
|
@@ -23,14 +28,15 @@ from the admin panel. This way, the users won't have to create the access
|
|
23
28
|
requests themselves and they are automatically granted the access once the admin
|
24
29
|
has given it.
|
25
30
|
|
26
|
-
|
31
|
+
Development of this gem has been sponsored by the
|
32
|
+
[City of Helsinki](https://www.hel.fi/).
|
27
33
|
|
28
34
|
## Installation
|
29
35
|
|
30
36
|
Add this line to your application's Gemfile:
|
31
37
|
|
32
38
|
```ruby
|
33
|
-
gem
|
39
|
+
gem "decidim-access_requests"
|
34
40
|
```
|
35
41
|
|
36
42
|
And then execute:
|
@@ -63,12 +69,104 @@ en:
|
|
63
69
|
|
64
70
|
## Usage
|
65
71
|
|
66
|
-
|
72
|
+
For enabling the verifcation method:
|
73
|
+
|
74
|
+
- Follow the installation instructions above.
|
75
|
+
- Login to the system management section of Decidim at `/system`.
|
76
|
+
- Enable the newly added verification method.
|
77
|
+
|
78
|
+
After enabled, you can now send authorization requests for admins:
|
79
|
+
|
80
|
+
- Login to Decidim.
|
81
|
+
- Go to My account > Authorizations.
|
82
|
+
- Click the newly added authorization ("Your access requests").
|
83
|
+
- Click "Send request".
|
84
|
+
|
85
|
+
After the request is sent, you can now login as admin to approve the request:
|
86
|
+
|
87
|
+
- Login to Decidim as an admin user.
|
88
|
+
- Go to Admin dashboard > Users > Verifications > Access requests.
|
89
|
+
- You will see a list of received requests.
|
90
|
+
- Click the check icon to approve an access request.
|
91
|
+
|
92
|
+
After this, you can now control the access to certain functionality using
|
93
|
+
Decidim's permissions (e.g. component permssions). For example, you can limit
|
94
|
+
the creation of new proposals only for approved users.
|
95
|
+
|
96
|
+
You are not limited for waiting for the users to send the requests. Another way
|
97
|
+
to grant access is to directly grant it for the users. To do this:
|
98
|
+
|
99
|
+
- Login to Decidim as an admin user.
|
100
|
+
- Go to Admin dashboard > Users > Verifications > Access requests.
|
101
|
+
- Click "Granted requests" from the top right corner of the view.
|
102
|
+
- You will see a list of granted access requests if any are available.
|
103
|
+
- Click "New" from the top right corner of the view.
|
104
|
+
- Search the user you want to grant access to.
|
105
|
+
- Click the check icon in the "Actions" column of the users listing.
|
106
|
+
|
107
|
+
After this, the user is directly authorized to access the limited actions.
|
67
108
|
|
68
109
|
## Contributing
|
69
110
|
|
70
111
|
See [Decidim](https://github.com/decidim/decidim).
|
71
112
|
|
113
|
+
### Developing
|
114
|
+
|
115
|
+
To start contributing to this project, first:
|
116
|
+
|
117
|
+
- Install the basic dependencies (such as Ruby and PostgreSQL)
|
118
|
+
- Clone this repository
|
119
|
+
|
120
|
+
Decidim's main repository also provides a Docker configuration file if you
|
121
|
+
prefer to use Docker instead of installing the dependencies locally on your
|
122
|
+
machine.
|
123
|
+
|
124
|
+
You can create the development app by running the following commands after
|
125
|
+
cloning this project:
|
126
|
+
|
127
|
+
```bash
|
128
|
+
$ bundle
|
129
|
+
$ DATABASE_USERNAME=<username> DATABASE_PASSWORD=<password> bundle exec rake development_app
|
130
|
+
```
|
131
|
+
|
132
|
+
Note that the database user has to have rights to create and drop a database in
|
133
|
+
order to create the dummy test app database.
|
134
|
+
|
135
|
+
Then to test how the module works in Decidim, start the development server:
|
136
|
+
|
137
|
+
```bash
|
138
|
+
$ cd development_app
|
139
|
+
$ DATABASE_USERNAME=<username> DATABASE_PASSWORD=<password> bundle exec rails s
|
140
|
+
```
|
141
|
+
|
142
|
+
In case you are using [rbenv](https://github.com/rbenv/rbenv) and have the
|
143
|
+
[rbenv-vars](https://github.com/rbenv/rbenv-vars) plugin installed for it, you
|
144
|
+
can add the environment variables to the root directory of the project in a file
|
145
|
+
named `.rbenv-vars`. If these are defined for the environment, you can omit
|
146
|
+
defining these in the commands shown above.
|
147
|
+
|
148
|
+
#### Code Styling
|
149
|
+
|
150
|
+
Please follow the code styling defined by the different linters that ensure we
|
151
|
+
are all talking with the same language collaborating on the same project. This
|
152
|
+
project is set to follow the same rules that Decidim itself follows.
|
153
|
+
|
154
|
+
[Rubocop](https://rubocop.readthedocs.io/) linter is used for the Ruby language.
|
155
|
+
|
156
|
+
You can run the code styling checks by running the following commands from the
|
157
|
+
console:
|
158
|
+
|
159
|
+
```
|
160
|
+
$ bundle exec rubocop
|
161
|
+
```
|
162
|
+
|
163
|
+
To ease up following the style guide, you should install the plugin to your
|
164
|
+
favorite editor, such as:
|
165
|
+
|
166
|
+
- Atom - [linter-rubocop](https://atom.io/packages/linter-rubocop)
|
167
|
+
- Sublime Text - [Sublime RuboCop](https://github.com/pderichs/sublime_rubocop)
|
168
|
+
- Visual Studio Code - [Rubocop for Visual Studio Code](https://github.com/misogi/vscode-ruby-rubocop)
|
169
|
+
|
72
170
|
### Testing
|
73
171
|
|
74
172
|
To run the tests run the following in the gem development path:
|
@@ -94,12 +192,19 @@ If you want to generate the code coverage report for the tests, you can use
|
|
94
192
|
the `SIMPLECOV=1` environment variable in the rspec command as follows:
|
95
193
|
|
96
194
|
```bash
|
97
|
-
SIMPLECOV=1 bundle exec rspec
|
195
|
+
$ SIMPLECOV=1 bundle exec rspec
|
98
196
|
```
|
99
197
|
|
100
198
|
This will generate a folder named `coverage` in the project root which contains
|
101
199
|
the code coverage report.
|
102
200
|
|
201
|
+
### Localization
|
202
|
+
|
203
|
+
If you would like to see this module in your own language, you can help with its
|
204
|
+
translation at Crowdin:
|
205
|
+
|
206
|
+
https://crowdin.com/project/decidim-access-requests
|
207
|
+
|
103
208
|
## License
|
104
209
|
|
105
210
|
See [LICENSE-AGPLv3.txt](LICENSE-AGPLv3.txt).
|
data/Rakefile
CHANGED
@@ -6,10 +6,40 @@ desc "Generates a dummy app for testing"
|
|
6
6
|
task test_app: "decidim:generate_external_test_app"
|
7
7
|
|
8
8
|
desc "Generates a development app."
|
9
|
-
task development_app
|
9
|
+
task :development_app do
|
10
|
+
Bundler.with_original_env do
|
11
|
+
generate_decidim_app(
|
12
|
+
"development_app",
|
13
|
+
"--app_name",
|
14
|
+
"#{base_app_name}_development_app",
|
15
|
+
"--path",
|
16
|
+
"..",
|
17
|
+
"--recreate_db",
|
18
|
+
"--demo"
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Copy the initializer and translation file to the development app folder
|
23
|
+
base_path = __dir__
|
24
|
+
source_path = "#{base_path}/lib/decidim/access_requests/generators/app_templates"
|
25
|
+
target_path = "#{base_path}/development_app/config"
|
26
|
+
FileUtils.cp(
|
27
|
+
"#{source_path}/initializer.rb",
|
28
|
+
"#{target_path}/initializers/decidim_verifications_access_requests.rb"
|
29
|
+
)
|
30
|
+
FileUtils.cp(
|
31
|
+
"#{source_path}/en.yml",
|
32
|
+
"#{target_path}/locales/decidim-access_requests.en.yml"
|
33
|
+
)
|
34
|
+
|
35
|
+
# Seed the DB after the initializer has been installed
|
36
|
+
Dir.chdir("development_app") do
|
37
|
+
system("bundle exec rake db:seed")
|
38
|
+
end
|
39
|
+
end
|
10
40
|
|
11
41
|
# Run all tests, include all
|
12
|
-
RSpec::Core::RakeTask.new(:spec) do |t
|
42
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
13
43
|
t.verbose = false
|
14
44
|
end
|
15
45
|
|
data/app/controllers/decidim/access_requests/verification/admin/granted_authorizations_controller.rb
CHANGED
@@ -18,9 +18,7 @@ module Decidim
|
|
18
18
|
def index
|
19
19
|
enforce_permission_to :index, :authorization
|
20
20
|
|
21
|
-
@granted_authorizations =
|
22
|
-
granted_authorizations
|
23
|
-
)
|
21
|
+
@granted_authorizations = granted_authorizations
|
24
22
|
end
|
25
23
|
|
26
24
|
def new
|
@@ -90,7 +88,7 @@ module Decidim
|
|
90
88
|
organization: current_organization,
|
91
89
|
name: verification_manifest.name,
|
92
90
|
granted: true
|
93
|
-
)
|
91
|
+
).query.page(params[:page]).per(15)
|
94
92
|
end
|
95
93
|
|
96
94
|
def authorization
|
data/app/controllers/decidim/access_requests/verification/admin/pending_authorizations_controller.rb
CHANGED
@@ -12,9 +12,7 @@ module Decidim
|
|
12
12
|
def index
|
13
13
|
enforce_permission_to :index, :authorization
|
14
14
|
|
15
|
-
@pending_authorizations =
|
16
|
-
pending_authorizations
|
17
|
-
)
|
15
|
+
@pending_authorizations = pending_authorizations
|
18
16
|
end
|
19
17
|
|
20
18
|
def update
|
@@ -60,7 +58,7 @@ module Decidim
|
|
60
58
|
organization: current_organization,
|
61
59
|
name: verification_manifest.name,
|
62
60
|
granted: false
|
63
|
-
)
|
61
|
+
).query.page(params[:page]).per(15)
|
64
62
|
end
|
65
63
|
|
66
64
|
def authorization
|
data/config/locales/fi.yml
CHANGED
data/config/locales/sv.yml
CHANGED
@@ -18,6 +18,13 @@ module Decidim
|
|
18
18
|
app.config.assets.precompile += %w(decidim_access_requests_manifest.css
|
19
19
|
decidim/access_requests/verification.scss)
|
20
20
|
end
|
21
|
+
|
22
|
+
def load_seed
|
23
|
+
# Enable the `:access_requests` authorization
|
24
|
+
org = Decidim::Organization.first
|
25
|
+
org.available_authorizations << :access_requests
|
26
|
+
org.save!
|
27
|
+
end
|
21
28
|
end
|
22
29
|
end
|
23
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-access_requests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Antti Hukkanen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-admin
|
@@ -100,6 +100,8 @@ files:
|
|
100
100
|
- config/locales/fi.yml
|
101
101
|
- config/locales/sv.yml
|
102
102
|
- lib/decidim/access_requests.rb
|
103
|
+
- lib/decidim/access_requests/generators/app_templates/en.yml
|
104
|
+
- lib/decidim/access_requests/generators/app_templates/initializer.rb
|
103
105
|
- lib/decidim/access_requests/verification.rb
|
104
106
|
- lib/decidim/access_requests/verification/admin.rb
|
105
107
|
- lib/decidim/access_requests/verification/admin_engine.rb
|
@@ -125,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
127
|
version: '0'
|
126
128
|
requirements: []
|
127
129
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.7.
|
130
|
+
rubygems_version: 2.7.6
|
129
131
|
signing_key:
|
130
132
|
specification_version: 4
|
131
133
|
summary: Allows admins to add new access request authorizations.
|