Tool for managing access to BigBlueButton meetings https://vergadering.bij1.org/ingang/rooms/
Go to file
kiara 9d67656f44 add voting portal (#7)
de huidige opzet hier houdt in dat de tokens van leden voor een vergadering, voorheen alleen gebruikt voor hun persoonlijke links tot de digitale vergadering (die hun naam instelt in BigBlueButton en ze als aanwezig markeerde voor stemmingen), nu ook gebruikt worden voor de link naar de stem portaal.

implicatie hiervan is dat Ingang admins zo ook toegang krijgen tot de stem credentials, in plaats van enkel de systeembeheerders met toegang tot de Helios database.

waar die kennis iemand wel in staat stelt om namens een ander te stemmen, wordt dit risico in check gehouden doordat dit niet ongemerkt gaat: na het uitbrengen van een stem wordt er naar het bijbehorende email adres een bevestiging gestuurd.
het risico bij anderszins kwaadwillenden die de info verkrijgen is hetzelfde; gebruik ervan gaat niet ongemerkt.

waar het mogelijk zou zijn om van de bestaande token af te wijken voor dit doeleinde naar een hash niet zichtbaar voor Ingang admins, zou dit ook nadelen hebben.
af en toe hebben we leden voor wie de mailtjes uit Ingang niet makkelijk aankomen, in welk geval we nu handmatig een inlog link kunnen doorgeven.
mochten de nodige info hiervoor niet meer beschikbaar zijn voor degene die een ALV technisch runt, dan worden juist dit soort situaties weer lastiger.

Co-authored-by: Kiara Grouwstra <kiara@bij1.org>
Reviewed-on: #7
2023-01-27 14:47:10 +00:00
app add voting portal (#7) 2023-01-27 14:47:10 +00:00
config add voting portal (#7) 2023-01-27 14:47:10 +00:00
db add voting portal (#7) 2023-01-27 14:47:10 +00:00
lib initial 2020-10-30 16:10:59 +01:00
log flesh out gitignore 2021-12-05 22:15:56 +01:00
public add voting portal (#7) 2023-01-27 14:47:10 +00:00
storage initial 2020-10-30 16:10:59 +01:00
test add voting portal (#7) 2023-01-27 14:47:10 +00:00
tmp flesh out gitignore 2021-12-05 22:15:56 +01:00
vendor initial 2020-10-30 16:10:59 +01:00
.browserslistrc initial 2020-10-30 16:10:59 +01:00
.gitignore handle env vars 2021-12-05 22:19:39 +01:00
.gitlab-ci.yml Merge remote-tracking branch 'origin/ci' 2022-08-27 14:29:02 +02:00
.ruby-version initial 2021-12-05 21:52:18 +01:00
.tool-versions patch mimemagic 2021-12-05 22:18:33 +01:00
.woodpecker.yml '.woodpecker.yml' toevoegen 2022-08-15 17:33:16 +00:00
Gemfile add postgres 2022-09-04 22:23:51 +02:00
Gemfile.lock add postgres 2022-09-04 22:23:51 +02:00
README.md fix link in readme 2022-08-26 23:31:56 +02:00
Rakefile initial 2020-10-30 16:10:59 +01:00
babel.config.js initial 2020-10-30 16:10:59 +01:00
config.ru initial 2020-10-30 16:10:59 +01:00
package.json initial 2020-10-30 16:10:59 +01:00
postcss.config.js initial 2020-10-30 16:10:59 +01:00
yarn.lock initial 2020-10-30 16:10:59 +01:00

README.md

ingang

This is a piece of middleware intended to help manage invites for BigBlueButton and Helios, the two systems we use in tandem for holding meetings where members can vote. Its web interface is hosted at https://vergadering.bij1.org/ingang/rooms/.

requirements

dependencies

usage

# install ruby version specified in Gemfile
rvm use "ruby-2.7.5"
# create a wrapper for this ruby
PUMA=`gem wrappers show pumactl`

cp config/application.yml.bck config/application.yml.bck
# edit the above file to enter proper values
bundle config set --local path 'vendor'
bundle update
bundle install
bundle binstubs --all
rails app:update:bin
rails credentials:edit
# either restore existing data
cp old/config/master.key ./config/master.key
cp old/db/production.sqlite3 ./db/production.sqlite3
# or scaffold database
rails db:migrate # RAILS_ENV=test
# handle static assets
sudo apt-get update && sudo apt-get install yarn
RAILS_ENV=production rails assets:precompile
rails webpacker:install
# run tests
bin/rake test

# create service
sudo bash -c "cat > /etc/systemd/system/ingang.service" << EOF
[Unit]
Description=Ingang

[Service]
Type=simple
RemainAfterExit=yes
Restart=on-failure
TimeoutSec=300
User=$USER
WorkingDirectory=$PWD
PIDFile=$PWD/tmp/pids/server.pid
ExecStart=$PUMA -F $PWD/config/puma.rb start
ExecStop=$PUMA -F $PWD/config/puma.rb stop
ExecReload=$PUMA -F $PWD/config/puma.rb phased-restart

[Install]
WantedBy=multi-user.target
EOF

# start and check service
sudo systemctl daemon-reload
sudo systemctl stop ingang
sudo systemctl disable ingang
sudo systemctl enable ingang
sudo systemctl start ingang
systemctl status ingang
journalctl -u ingang

todo

  • CI
  • un-hardcode
    • app/views/main/stream.html.erb: video/chat urls

documentation checklist

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...