2012年11月7日星期三

学用MVC4做网站二:用户组

学用MVC4做网站二:用户组

用户组这块要实现的功能如下:

二、用户组

2.1浏览用户组

2.2添加用户组

2.3修改用户组

2.4删除用户组

用户组类型应该有匿名,受限,正常,和特殊几种类型。

设计这些类型的目的是为了以后权限管理做准备,以后权限设计这块计划是以用户所在的用户组来划分权限。在这里设计这几种用户类型的目的如下

匿名类型-指未登录的用户(游客)用户组。本来不计划设置这个类型的,正常来说这种类型的用户组应该只有一个(匿名用户组),匿名用户组是一个虚的,在系统中没用注册的用户属于这个组,这个组的目的是在系统中给哪些未登录也可以操作的部分设置权限。本来想把匿名用户组划到受限用户组类型里,后来觉得匿名用户是虚拟的,而受限制的用户是系统中真是存在的用户,所以还是单独分出来比较清晰。

受限类型-是系统中被限制正常操作的一组用户。像系统如果启用Email验证的话,未验证Email的用户应该数据这一组,还有系统中由于某些原因被惩罚,被禁言等用户组属于这种类型

正常类型-是系统中注册后正常使用的用户组类型。这种类型的用户组应该最多,可以用来区分用户等功能,像录入员,编辑等等,也可以想论坛一样表示用户的等级,可以设计成达到什么条件自动升到下一级一样。

特殊类型-指系统里有特权的组,像VIP、贵宾、特约嘉宾之类的。现在不是哪里都讲vip、讲特权嘛,所以这个也一定要考虑,这种用户要管理员后台将用户调整过来,用户自己是不能升级到的。

把类型设计成枚举

public enum UserGroupType    {        Anonymous, Limited, Normal, Special    }

添加UserGroup模型类

public class UserGroup    {        [Key]        public int UserGroupId { get; set; }        /// <summary>        /// 用户组类型【True-系统,False-用户定义。】        /// </summary>        [Display(Name="用户组类型")]        [Required(ErrorMessage = "×")]        public UserGroupType Type { get; set; }        /// <summary>        /// 用户组名称        /// </summary>        [Display(Name="用户组名称",Description="2-12个字符。")]        [Required(ErrorMessage = "×")]        [StringLength(12,MinimumLength=2,ErrorMessage = "×")]        public string Name { get; set; }        /// <summary>        /// 说明        /// </summary>        [Display(Name="说明",Description="最多50个字符。")]        [StringLength(50,ErrorMessage = "×")]        public string Description { get; set; }    }

NineskyContext中添加public DbSet<UserGroup> UserGroups

using Ninesky.Models;using System.Data.Entity;namespace Ninesky.Repository{    public class NineskyContext:DbContext    {        public DbSet<User> Users { get; set; }        public DbSet<UserGroup> UserGroups { get; set; }        public NineskyContext()            : base()        {            Database.CreateIfNotExists();        }    }}

然后添加控制器UserGroupController

image

在用户组中添加 [添加用户组],[修改用户组],[删除用户组],[用户组列表]的空Action。

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using Ninesky.Models;namespace Ninesky.Controllers{    public class UserGroupController : Controller    {                /// <summary>        /// 添加用户组        /// </summary>        /// <returns></returns>        public ActionResult Add()        {            return View();        }        [HttpPost]        public ActionResult Add(UserGroup userGroup)        {            return View();        }        /// <summary>        /// 修改用户组        /// </summary>        /// <param name="GroupId">用户组Id</param>        /// <returns></returns>        public ActionResult Edit(int GroupId)        {            return View();        }        [HttpPost]        public ActionResult Eidt(UserGroup userGroup)        {            return View();        }        /// <summary>        /// 删除用户组        /// </summary>        /// <param name="GroupId">用户组Id</param>        /// <returns></returns>        public ActionResult Delele(int GroupId)        {            return View();        }        [HttpPost]        public ActionResult Delete(int GroupId)        {            return View();        }        /// <summary>        /// 用户组列表        /// </summary>        /// <returns></returns>        public ActionResult List()        {            return View();        }        /// <summary>        /// 用户组列表        /// </summary>        /// <param name="groupType">用户组类型</param>        /// <returns></returns>        public ActionResult List(int groupType)        {            return View();        }    }}




TAG: