The site admin should be allowed to specify the registration policy for that site.The tow policies we should support are: 1. self registration User clicks on the register link which opens up a form. User fill up the form and submits it. A email is sent to the user with a link to activate the link. Once the user clicks on the activation link, the user is activated in the system and can start using the system. 2. admin approved registration In this case the user clicks on the register link and as with self service the form is popped-up, the user enters all the details and submits the form. AS they submit they get a message that they will be notified once they have been approved. The record is now in an admin queue and once they admin approved(can approve multiple at same time), the record is created and the user notified. If the admin rejects, the user is notified that their account creation request was not approved. In addition, the site admin can bulk create users by uploading a CSV file that contains a list of users and the user account information. The headers should be: email address, first name, last name, password (basically all the fields that the user would have filled in if they had self registered). Notification is generated and user gets a notification with a link to activate the account. Once he activates the account, the user needs to reset his password. Design Companies table will have an additional field indicating the type of registration policy. When the company is getting created in the system, it needs to specifiy which type of registration policy will be used. User - users table would have an additional column, indicating how the user was created. Whether by self or by the admin of the company. User status and actions A user can either be in active or inactive status. He can login to the application only if the status is active. The status can be changed by the Admin of the company. Below are some use cases 1 - Admin Approved Registrations When User Registers, the status is set to Inactive. ie action will have the value registered and the status is inactive The Admin approves the user, the status is set to Active. action - approved, status - active If the admin rejects the user, then the status remains as Inactive. action - rejected, status - inactive If the admin suspends the user, then the status is set as Inactive. action - suspended, status - inactive. The first user that gets created as part of company creation will be the company admin. For this user, the status will be set as active when he signs in and the action will be registered. 2 - Self Registration When User Registers, the status is set to Active. ie action will have the value registered and the status is Active. If the admin suspends the user, then the status is set as Inactive. action - suspended, status - inactive.