zoukankan      html  css  js  c++  java
  • 学用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>
            /// <param name="groupType">用户组类型</param>
            /// <returns></returns>
            public ActionResult List(int groupType)
            {
                return View();
            }
        }
    }

    在Repository文件夹添加UserGroupRepository类,该类继承自RepositoryBase<UserGroup>代码如下:

    using Ninesky.Models;
    using System.Linq;
    
    namespace Ninesky.Repository
    {
        public class UserGroupRepository:RepositoryBase<UserGroup>
        {
            /// <summary>
            /// 添加用户组
            /// </summary>
            /// <param name="userGroup"></param>
            /// <returns></returns>
            public override bool Add(UserGroup userGroup)
            {
                dbContext.UserGroups.Add(userGroup);
                if (dbContext.SaveChanges() > 0) return true;
                else return false;
            }
            /// <summary>
            /// 更新用户组
            /// </summary>
            /// <param name="userGroup"></param>
            /// <returns></returns>
            public override bool Update(UserGroup userGroup)
            {
                dbContext.UserGroups.Attach(userGroup);
                dbContext.Entry<UserGroup>(userGroup).State = System.Data.EntityState.Modified;
                if (dbContext.SaveChanges() > 0) return true;
                else return false;
            }
            /// <summary>
            /// 删除用户组
            /// </summary>
            /// <param name="userGroupId"></param>
            /// <returns></returns>
            public override bool Delete(int userGroupId)
            {
                dbContext.UserGroups.Remove(dbContext.UserGroups.SingleOrDefault(ug=>ug.UserGroupId == userGroupId));
                if(dbContext.SaveChanges()>0) return true;
                else return false;
            }
            /// <summary>
            /// 查找制定用户组
            /// </summary>
            /// <param name="UserGropuId"></param>
            /// <returns></returns>
            public override UserGroup Find(int UserGropuId)
            {
                return dbContext.UserGroups.SingleOrDefault(ug => ug.UserGroupId == UserGropuId);
            }
            /// <summary>
            /// 用户组列表
            /// </summary>
            /// <returns></returns>
            public IQueryable<UserGroup> List()
            {
                return dbContext.UserGroups;
            }
            /// <summary>
            /// 用户组列表
            /// </summary>
            /// <param name="userGroupType">用户组类型</param>
            /// <returns></returns>
            public IQueryable<UserGroup> List(int userGroupType)
            {
                return dbContext.UserGroups.Where(ug => ug.Type == (UserGroupType)userGroupType);
            }
        }
    }

    ================================

    2011-11-15用户组部分截止到删除用户组的源码下载

    http://pan.baidu.com/share/link?shareid=118238&uk=2198133459

  • 相关阅读:
    dotNet程序保护方案
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Objectivec 中 nil, Nil, NULL和NSNull的区别
    对象的相等和恒等
    IOS SDK介绍
    iOS内存管理编程指南
    http权威指南读书笔记(三)——http报文
    http权威指南学习笔记(二)
    http权威指南读书笔记(一)
    CentOS 设置环境变量
  • 原文地址:https://www.cnblogs.com/mzwhj/p/2758702.html
Copyright © 2011-2022 走看看