Hey Guys,
So i'm writing a little project and i'm looking into writing my own user management package and the hope is to make it project independent so it can be easily slotted into other projects. Sounds like a job for OOP to me!
I've got a nice User class built up but I wanted to get an opinion from some folks who work with PHP on the daily. What all should this User Management package entail? I've done some reasearch on other packages and some that came highly recommended were relatively old and I don't think they're quite going to last through PHP6 - that aside - they have some impressive features and tons of bells and whistles. Some even claim to be able to update any and all database fields.
Really? Do I want my user manager to be able to mod my database? Personally, I do not. This is one of the reasons I decided to roll my own script here. I know what i'll be getting the end because i'm writing it.
So I've got what I believe to be the basics down. Log In, Log Out, Add, Edit, Delete & view other users profiles (can include one avatar/small image). I even have a role system and it works amazingly well but I think i'm going to scrap the idea of User Roles.
Roles can be cumbersome when you start dealing with larger projects and the sheer amount of tasks that need to be completed could make desiging the role system to be that flexible could be a full time job. How do YOU control access when you're designing a user system for a multi-user project? Access Control List? Roles? Some other method? Please do share or direct me to a link or two for a good read on the topic - I would appreciate it!
The script also logs in the db the date of user registration as well as inputs a timestamp each time the user logs in. At this point, only the last login timestamp is saved. Would it be worthwhile to have a list of say .. the last 25 logins? Failed login attempts?
I'm thinking about using googles reCAPTCHA feature.
Any other must have features that i've left out of the description?