Open orenault opened 10 years ago
Great idea mimicking Jenkins auth default settings. There is already a users table, but it has been disabled to speed up initial development. We'll try to use them and add a basic auth feature.
Now we have users. I will study how permissions are implemented in Jenkins and TestLink. And then will study how Sentry (PHP library) implements permissions too, and will try to find a compromise for us. At the moment the strategy used is Logged in users can do everything, but we'll enhance that in the future.
Users table created, populated with examples, tested. API providing right methods for adding, logging in, logging out, and editing users.
Will leave the issue open to discuss and implement the permissions, groups or other schema for deciding which users have permissions to what parts of the system.
Good package for Laravel https://github.com/spatie/laravel-permission
Laravel Gates and Policies also look promising https://laravel.com/docs/5.3/authorization
spatie/laravel-permission seems a bit more complete. Using Gates and Policies, we'd have to write most of the logic around a permission/role framework - basically rewriting laravel-permission.
Going with laravel-permission then. Just need to add the package to our dependencies, and then start creating views for administration. Plus a default admin and a default user users.
Hmmm, thinking well, https://github.com/Zizaco/entrust seems to have a few more features, and have more users too. Besides, just found a good tutorial for JWT and Entrust (https://scotch.io/tutorials/role-based-authentication-in-laravel-with-jwt)
Hmmm, bitten by https://github.com/Zizaco/entrust/issues/460
Luckily the workaround provided there works for us too. Now bitten by https://github.com/Zizaco/entrust/issues/468, ugh
TestLink has the following roles:
TestRail "comes with a few preconfigured useful roles such as Guest, Tester or Lead." (http://docs.gurock.com/testrail-userguide/howto-permissions). And from the screen shots, looks like there's a Designer role too.
I think we could go with something like:
Is it possible to add Authentication and rights management ?
Maybe as it's done in Jenkins, with a matrix of rights/users. And the ability to connect to a ldap.
This should be disable by default (everybody can do anything... create, delete...).
Thanks Olivier