Direkt zum Hauptbereich

rails 4 with activerecord, devise, cancan and rolify for authentication/authorisation

Rails is a great tool and just recently I discovered the full potential of it, although I am still not using to the full.

How do all these gems work together - why rolify?

Devise does the authentication and uses a table named 'User' e.g. and gives the found user access to the specific part of your site.
Now cancan joines the game and since you will have marked models or part of the site with roles, it checks if a user is allowed: authorised.
Normally this is done through another column in the users table (you had to do yourself prior), but then you can assign one role to one user.

Rolify uses another approach when assigning roles, it creates a joint table connecting the User model to the Role model. That "could" mean you can assign several roles to a user, e.g. moderate and also be a mini admin.

Rolify bug:

The migration file had no file extension, with this missing "rb" I chased after the error "could not find Role table".

My Problems with all of them

Active Admin can be installed using Devis, there are just some problems that had me going for a while:
  • the docs are old, so look a the github docs, NO OTHER PAGE!!!
    and I am a little bit pissed because there is a official tutorial that sucks
  • it clashed with foundation, so delete the line in application.css:
    require tree
  • then go to config/environments/production.rb and change the precompile line to:
    config.assets.precompile += %w(active_admin.css.scss )
    config.assets.precompile += %w(active_admin.js.coffee)
  • the mirgration file of active admin using devise was almost similar to the one devise already ran, so there were some unnecessary errors

Test you settings with this command, it may show some other stuff with foundation or bootstrap or whatever is up. This is important because in case you deploy with capistrano that command can cause a failed deployment which then is harder do debug:

RAILS_ENV=production bundle exec rake assets:precompile --trace 


Best practise

Use git and create a branch for this. It is very complex to get all of these to work and it is easy to mess it all up. After all of this is working properly and ActiveAdmin is initialised to use cancan (config/initializers/active_admin.rb) and you login to /admin by your normal log screen/page, then you may do a merge and be happy.

I had to do a hard reset because I followed the wrong (official) page and everything was set up half.


Kommentare

Beliebte Posts aus diesem Blog

debian 6 vserver - a new installation due to centOS update problem - my steps

My centOS vserver broke down after a "yum update" and even the centOS community forum could not give an answer within 24h. In my books that is poor for the almighty and stable centOS. Bare in mind that I am just a normal user of linux, no professional and definitely no expert when it comes to server, but I can read, try and share my findings: debian 6 installation steps via ssh secure your server: adduser foobar for security purposes  change /etc/sshd/sshd_conf to PermitRootLogin no now you can login as foobar and change to root via su - visudo for sudo command permissions and put this at the bottom: foobar   ALL=(ALL) ALL change hostname change hostname in /etc/hostname and in /etc/hosts reboot login via rsa key rather than password locally do ssh-keygen ssh-copy-id -i foobar@hostname... ssh now works without passwords but with keys (for easy deployment) install ruby and rails via rvm login as root always good to have: sudo apt-get install...

Virtuelles Wasser?!

In den letzten Tagen habe ich immer mal wieder etwas mit Rails programmiert und werde mich ebenso heute dem neuen Auftrag "multiple file upload" kümmern. Und weil vieles "Versuch-Irrtum" ist, gucke ich auf dem zweiten Monitor immer Reportagen. Letztens kam mir "Der große Haushaltscheck" unter die Finger: ARD Mediathek "Der große Haushaltscheck" In der Sendung vom 11.3.2013 ging es um unser Trinkwasser. Jedem sollte klar sein, dass Plastikflaschen nicht die erste Wahl sind, weil man nicht darauf vertrauen kann, dass der Hersteller wirklich "gutes" Plastik nahm (BPA, Phtalate, Benzol, Xylol usw.), aber das interessante waren die genannten Zahlen in puncto virtuellem Wasser bzw. Wassersparen. Wasser sparen an und für sich ist ja gut, nur heisst das nicht, dass wir weniger die Klospühlung benutzen sollten, sondern dass wir uns Gedanken machen über das "virtuelle Wasser". Unsere Kanalisation ist eine Schwemm-Kanalisatio...

LEGO Alternativen: Sluban und COBI

Ich habe vor kurzem wieder Feuer gefangen für LEGO. Und das kam durch die Dokumentation über die Errichtung des LEGO-Hauses in Billund. Also habe ich meine Steine gereinigt und die Kinder fangen gerade an, auch mal etwas zu bauen. Teilweise stammen meine Steine aus den 1970ern, 1980er und viel aus den 1990ern - alles passt noch wunderbar aufeinander. Viele Designs von LEGO gehen doch Wege, die ich selber nicht so toll finde. Ausserdem verstehe ich nicht, dass etliche Designs aufgegeben wurden. Letztere Sets findet man dann zu horrenden Preisen auf den einschlägigen Plattformen. Also sah ich mich um, denn das Patent für das Baustein-Prinzip ist abgelaufen und andere Firmen produzieren auch Stecksteine. Sluban ... ist Mist und wird von mir nie mehr gekauft. Die Firma stiehlt von LEGO, hat aber auch interessante Designs. Gerade bei militärischen Sachen findet der Fan einige gut aussehende Sets. Aber die Steine wirken nicht besonders toll, es gibt Macken, die Anleitung kön...