public static bool CanSendMail(this SiteSettings ss, bool site = false) { if (!Contract.Mail()) { return(false); } switch (Routes.Controller()) { case "depts": return(CanManageTenant()); case "groups": return(CanEditGroup()); case "users": return(CanManageTenant() || Sessions.UserId() == Routes.Id()); default: if (ss.ReferenceType == "Sites") { return(ss.CanManageSite()); } else { return(ss.Can(Types.SendMail, site)); } } }
public static bool CanDelete(this SiteSettings ss, bool site = false) { switch (Routes.Controller()) { case "depts": return(CanManageTenant()); case "groups": return(CanEditGroup()); case "users": return(CanManageTenant() && Sessions.UserId() != Routes.Id()); default: if (ss.ReferenceType == "Sites") { return(ss.CanManageSite()); } else { return(ss.Can(Types.Delete, site)); } } }
public static bool CanCreate(this SiteSettings ss, bool site = false) { switch (Routes.Controller()) { case "depts": case "users": return(CanManageTenant()); case "groups": return(CanEditGroup()); default: return(ss.Can(Types.Create, site)); } }
public static bool CanRead(this SiteSettings ss, bool site = false) { switch (Routes.Controller()) { case "depts": return(CanManageTenant()); case "groups": return(CanReadGroup()); case "users": return(CanManageTenant() || Sessions.UserId() == Routes.Id()); default: return(ss.Can(Types.Read, site)); } }
public static bool CanManagePermission(this SiteSettings ss, bool site = false) { return(ss.Can(Types.ManagePermission, site)); }
public static bool CanExport(this SiteSettings ss, bool site = false) { return(Contract.Export() && ss.Can(Types.Export, site)); }