Tool for managing access to BigBlueButton meetings
https://vergadering.bij1.org/ingang/rooms/
kiara
9d67656f44
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 |
||
---|---|---|
app | ||
config | ||
db | ||
lib | ||
log | ||
public | ||
storage | ||
test | ||
tmp | ||
vendor | ||
.browserslistrc | ||
.gitignore | ||
.gitlab-ci.yml | ||
.ruby-version | ||
.tool-versions | ||
.woodpecker.yml | ||
Gemfile | ||
Gemfile.lock | ||
README.md | ||
Rakefile | ||
babel.config.js | ||
config.ru | ||
package.json | ||
postcss.config.js | ||
yarn.lock |
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
-
...