17,747
社区成员




public DbSet<Link> Links { get; set; }
public DbSet<AccountLinkMatch> AccountLinks { get; set; }
public DbSet<Account> Accounts { get; set; }
public class Link
{
[Key]
public int ID { get; set; }
public string Icon { get; set; }
public string Title { get; set; }
public string Url { get; set; }
public LinkType Type { get; set; }
public virtual Link ParentLink { get; set; }
public virtual List<Link> ChildrenLinks { get; set; }
public virtual List<AccountLinkMatch> AccountLinks { get; set; }
}
public class AccountLinkMatch
{
public int ID { get; set; }
public virtual Account Account { get; set; }
public virtual Link Link { get; set; }
}
public class Account
{
public int ID { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; }
public virtual List<AccountRoleMatch> AccountRole { get; set; }
public virtual List<AccountLinkMatch> AccountLinks { get; set; }
}
/// <summary>
/// 编辑页面权限
/// </summary>
/// <param name="accountID">账号ID</param>
/// <param name="OAuth">权限ID数组</param>
/// <returns></returns>
[HttpPost]
[Auth]
public ActionResult EditAccountLink(int accountID, int[] OAuth)
{
var ef = ContextPlatFormFactory.Instance;
//修改之前的权限
var oldAuths = ef.AccountLinks.Where(c => c.Account.ID == accountID).Select(c => c.Link.ID);
//没有权限信息,全部删除
if (OAuth==null)
{
ef.AccountLinks.Where(c => c.Account.ID == accountID).Delete();
}
else
{
//删除无效权限
ef.AccountLinks.Where(c => !OAuth.Contains(c.Link.ID)).Delete();
//添加新加权限
ef.AccountLinks.AddRange(OAuth.Select(c => new AccountLinkMatch() { Account = new Account() { ID = accountID }, Link = new Link() { ID = c } }));
}
ef.SaveChanges();
return Json(0);
}