/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, SiteEntities appFunction) { int appFunctionId = (int)appFunction; if (loginUser == null) { return false; } if (loginUser != null && appFunctionId == 0) { return true; } bool returnValue = false; //// 判斷使用者是否具有可以存取功能的角色,只要AdminValue大於0表示有此Menu var roles = from userRole in loginUser.AdminRoles where userRole.AdminBar.AdminBarId == appFunctionId && userRole.AdminValue > 0 select userRole; if (roles.Count() > 0) { returnValue = true; } return returnValue; }
/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, int appFunctionId, int operations) { if (loginUser == null) { return false; } if (loginUser != null && operations == 0 && appFunctionId == 0) { return true; } bool returnValue = false; //// 判斷使用者是否具有可以存取功能的角色 var roles = from userRole in loginUser.AdminRoles where userRole.AdminBar.AdminBarId == appFunctionId && (userRole.AdminValue & operations) == operations select userRole; if (roles.Count() > 0) { returnValue = true; } return returnValue; }
/// <summary> /// 根據目前登入者檢查是否有權限存取功能 /// </summary> /// <param name="appFunctionId"></param> /// <returns></returns> public static bool CheckAuthorization(MasterMember loginUser, SiteEntities appFunction, SiteOperations operation) { return CheckAuthorization(loginUser, (int)appFunction, (int)operation); }
/// <summary> /// 更新管理者帳號 /// </summary> /// <param name="masterMember">被更新的管理者帳號</param> /// <returns>更新後的管理者帳號</returns> public MasterMember UpdateMasterMember(MasterMember masterMember) { return FTISDao.UpdateMasterMember(masterMember); }
/// <summary> /// 刪除管理者帳號 /// </summary> /// <param name="masterMember">被刪除的管理者帳號</param> public void DeleteMasterMember(MasterMember masterMember) { FTISDao.DeleteMasterMember(masterMember); }
/// <summary> /// 管理者帳號 /// </summary> /// <param name="masterMember">被新增的管理者帳號</param> /// <returns>新增後的管理者帳號</returns> public MasterMember CreateMasterMember(MasterMember masterMember) { return FTISDao.CreateMasterMember(masterMember); }
/// <summary> /// 取得一個新的管理者帳號空殼 /// </summary> /// <returns></returns> public MasterMember MakeMasterMember() { MasterMember masterMember = new MasterMember(); masterMember.AdminRoles = new List<AdminRole>(); IList<AdminBar> allAdminBar = GetAllAdminBar(); foreach (AdminBar adminBar in allAdminBar) { AdminRole adminRole = new AdminRole(); adminRole.MasterMember = masterMember; adminRole.AdminBar = adminBar; masterMember.AdminRoles.Add(adminRole); } return masterMember; }
private void Save(MasterMember entity) { entity.MasterMemberId = EntityId; entity.Name = Name; entity.Account = Account; ////因為密碼加密,Load時會給一個m_DefaultPass,存檔時要不同才會去修改密碼 if (!m_DefaultPass.Equals(Password)) { entity.Password = EncryptUtil.GetMD5(Password); } entity.Status = Status; entity.Email = Email; entity.Tel = Tel; entity.Memo = Memo; ////權限 foreach (AdminRole role in entity.AdminRoles) { if (role.AdminBar.AdminBarId.Equals((int)SiteEntities.Grade)) { continue; } role.AdminValue = SetRolesAdminValue(role.AdminBar.AdminBarId); } if (entity.MasterMemberId == 0) { entity.RegDate = DateTime.Now; m_FTISService.CreateMasterMember(entity); } else { m_FTISService.UpdateMasterMember(entity); } ////重新取得user LoginUserContainer.GetInstance().InitMember(this.Account); LoadEntity(entity.MasterMemberId); }
private string[] GetRolesBarList(MasterMember entity , SiteEntities siteEntities) { IList<string> list = new List<string>(); foreach (SiteOperations operation in Enum.GetValues(typeof(SiteOperations))) { if (operation == SiteOperations.None) { continue; } if (ACUtility.CheckAuthorization(entity, (int)siteEntities, (int)operation)) { list.Add(((int)operation).ToString()); } } if (list.Count > 0) { return list.ToArray(); } else { return new string[] { }; } }
protected void LoadEntity(MasterMember entity) { if (entity != null) { EntityId = entity.MasterMemberId; Name = entity.Name; Account = entity.Account; Password = m_DefaultPass; Status = entity.Status; RegDate = entity.RegDate; Email = entity.Email; Tel = entity.Tel; Memo = entity.Memo; ////權限 RolesBarList1 = GetRolesBarList(entity, SiteEntities.Master); RolesBarList2 = GetRolesBarList(entity, SiteEntities.AboutUs); RolesBarList3 = GetRolesBarList(entity, SiteEntities.News); RolesBarList4 = GetRolesBarList(entity, SiteEntities.HomeNews); RolesBarList5 = GetRolesBarList(entity, SiteEntities.Activity); RolesBarList6 = GetRolesBarList(entity, SiteEntities.Member); RolesBarList7 = GetRolesBarList(entity, SiteEntities.Download); RolesBarList8 = GetRolesBarList(entity, SiteEntities.Norm); RolesBarList9 = GetRolesBarList(entity, SiteEntities.Carbon); RolesBarList10 = GetRolesBarList(entity, SiteEntities.Application); RolesBarList11 = GetRolesBarList(entity, SiteEntities.Grade); RolesBarList12 = GetRolesBarList(entity, SiteEntities.Question); RolesBarList13 = GetRolesBarList(entity, SiteEntities.Links); RolesBarList14 = GetRolesBarList(entity, SiteEntities.Epaper); RolesBarList15 = GetRolesBarList(entity, SiteEntities.Season); RolesBarList16 = GetRolesBarList(entity, SiteEntities.Examination); RolesBarList17 = GetRolesBarList(entity, SiteEntities.GreenFactory); } }