/// <summary> /// 注册角色 为管理员赋予全不权限 /// </summary> public void RegistRole() { var accountTypeLists = JsonExtensions.GetStrings <AccountType>(); var rolePermmissionLists = base.Query <SystemRolePermission>().ToList(); var actionIds = Menus.Select(t => t.ActionId).ToList(); //获取最新的角色权限关系 rolePermmissionLists.Where(t => !actionIds.Contains(t.ActionId)).ToList().ForEach(x => { base.Delete(x); }); foreach (var accountType in accountTypeLists) { var role = base.Single <SystemRoles>(t => t.Id == accountType.Item1); if (role == null) { base.Add(new SystemRoles { Id = accountType.Item1, Name = accountType.Item2 }); } else { role.Name = accountType.Item2; base.Update(role); } //超级管理员 赋予所有权限 if (accountType.Item1 == (int)AccountType.Admin) { foreach (var m in Menus) { if (!rolePermmissionLists.Any(x => x.RoleId == accountType.Item1 && x.ActionId == m.ActionId)) { base.Add(new SystemRolePermission { RoleId = accountType.Item1, ActionId = m.ActionId, CreateTime = DateTime.Now }); } } } } base.Save(); }