Writeup:Planning Members
From Wikiturbine
By: Dmitriy Vysotskiy
This page is meant for organizing the membership section of the site (via CakePHP or otherwise). Since I don't know programming terminology too well, some terms might be used wrong, but try to see past that. In retrospect, the information here might look better as a chart.
Contents |
[edit] Important Points
Here are a few things to keep in mind:
- Levels of information access
- Public - only display simple info (name, pic, URL, location (?)) in the public profiles (everyone can see). This is to protect member privacy.
- In-network - consideration to restrict information availability to various user classes (ex: a new, entry-level member can't see much more with the log-in) or to the entire network (excluding admins)
- Security - protection against injections, unauthorized access, crawlers, bots, etc
- User classes (as mentioned in Neoturbine v5 - created to increase security and privacy. Suggested use: each user class has use of privacy settings, profile suicide, basic link to profile (neoturbine.net/user/***)
- User - new or limited access member. Has a profile and a public link to the profile
- Power user (User+) - established member with more privileges (such as domain redirection, server space) and higher network access (can see more profile info of others)
- Moderator - suggested subclass of admins with powers higher than that of a User+ but less than the top-level admins. May be redundant and unused.
- Admin - highest control of all user profiles (other than that of other admins), account deletion and editing, password resets, etc
- Flexibility - code for future expansions.
[edit] User Attributes (Variables and Constants)
Format: attribute (datatype) - description
[edit] Global
- user_name (string)
- pass (string) - hashed or whatnot
- irc_nick (string) - we could force users to use the same nick that they validated with nickserv for log in, or make this autoupdate on their profile. 1st options seems to give us some sort of name stability and channel moderation, and ties nicks with profiles
- real_name (string) - could be split into 1st and last names
- dob (int, float) - birthday (using UNIX time)? We will probably display age in profile.
- pic_location (string) - path to profile picture (whether uploaded and scaled/cropped or off-site). Should make sure this points to a jpg/gif/png file.
- css_location (string) - path to custom profile css
- location (string) - Town, Country Code (compiled syntax)
- home_site (string) - path to personal site (if not the current site)
- member_since (int) - join date
- user_class (int) - user's ranking class (user, user+, admin)
- is_online (boolean) - if user is on irc, links to showing an online icon
- various interger or boolean variables (array?) that indicate levels of privacy person uses for each of the above variables (public, in-network, off) excluding name, nick, pic and age.
[edit] Section Functions
Various functions we should code to deal with above data.
- Profile updaters - pass form fields to update profile, options, and settings
- isLoggedIn() - makes sure there is a php session open and the user is logged in before serving data
- renderProfile(string options) - returns specific rendering of profle info based on the passed var with options
- pictureFormat() - crops/scales uploaded photo
[edit] Implementation
On a side note, this may be worth looking at: