Hi to all :)
I discovered phalcon a couple of weeks ago, while I was looking around for a framework to switch from codeigniter,
I was impressed by its power, sense and completeness to mention a few !!
Since then I try to rebuild, based on Vokuro and my codeigniter experience, an authentication system which in turn will be used as a vanilla template to start several projects with different functionalities.
some of the specifications :
- There are only two user roles : admin and user, guests are out of the application and have access only to static content such as "about us", "terms of use" and login / register / forgot password / contact forms.
- In some applications guests won't have the ability to register at all, users will be created by the admin (or users that have the authority to create new users)
- Only admin(s) has access to any function in the application.
- Users will have access rights on different functions and modules based on their real live role in the company and not based on their user role. The way i used to handle this was with a database table, a row for every user with on/off fields for every function (e.g. user/create, user/ban, ....., invoice/view, invoice/issue, ...) that the application offers.
- Based on the user's access rights record, I examine either in a controller as a whole or in every action of the controller if access is granted to a specific user
- In some cases, user has access to an action but he has limited access to the result of the action
examples :
a user is allowed to see an employee's data (hire date, position, qualifications) except contact (e.g. personal phone, home address) and financial (salary).
another user is allowed to see a project's financial data (contract, payments, invoices) but is not allowed to edit them. - Besides the above, the application is split in servers (environments) internally, every record is marked with the server_id and a user can enter only one server at a time. (There are no servers actually, it is "marketing" name of data separation).
All the above are presented in hope to attract attention and hopefully get suggestions and ideas.
Now I'm at the position where the auth system is almost ready, and I would like to use the community experience in order to evaluate the solutions I picked from the options that phalcon provides.
In the next post(s) i will start presenting some modules with the specific questions I might have.
Thank you for your time :)