學用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM