Orchard 之:Widget,兼看 Layer 在权限控制中的作用

简介:

一:Widget

可以理解为控件,可以直接被页面所引用。行为类似与分部页面,比如,我们可以创建一个 商品列表 Widget,然后这个 Widget 就可以被很多页面所引用。

理解 Widget 这个概念,我们不得不理解另外两个概念:

1:Layer

Orchard 默认有这么几个层,Default、Authenticated、Anonymous、Disabled、TheHomepage。Layer 用于承载什么时候 Widget 将会被展现,这么讲大家一定觉得很抽象,其实 Layer 存在的意义完全在于其Rule。我们新建或者修改 Layer 的时候,就会出现 Rule,那么,Layer Rule 到底是什么,

它是一个布尔表达式,当这个表达式的值为 true 的时候,层中的 Widget 就显式,否则不显式。

举例来说:如果我们新建一个层,其 Rule 如果,

填写为:(not authenticated and url("~/about")) or authenticated

则表明:(未登录用户 且 URL 中 有 about)的可显式,或者 登录用户 可显式

注意,authenticated 作为 orchard 这里的关键字,被程序判断为 登录用户 的意思。如果有兴趣,可寻求代码验证。全部的被 Layer rule 表达式支持的关键字如下:

url("<url path>"):url匹配,如: url("~/home*")

authenticated:True 如果用户登录的话.

ContentType("<Type>"):True 如果 content type 匹配的话,如:ContentType("Page")

not:逻辑 NOT.

and:逻辑 AND.

or:逻辑:OR.

1.1 Layer 权限控制

鉴于 Layer 的这个特性,它的一个重要的作用可被用于权限控制。如 Authenticated 这个层,其 Rule 直接为 authenticated,这样的话,就意味着,这个层里的所有东西,只有登录用户才可见的。

 

2:Zone

理解为页面上的 占位(或者叫占位符),在页面展现的时候,它被用来展现 Widget。

image

我们要清楚:站点Theme实际上是定义 Layer,而 Layer 则是定义哪个 Zone 可用。我们在上图中看到的这些 Zone 就是当前 Theme 的所有的 Zone。

我们随便编辑一个 Widget,就能大致看清楚它们之间的关系了,如下:

image


本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/p/3844703.html,如需转载请自行联系原作者

相关文章
|
12月前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
236 9
|
自然语言处理 运维 Cloud Native
运维大模型探索之 Text2PromQL 问答机器人
本文主要介绍将AIGC技术运用到可观测领域的探索。
1709 91
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
LabVIEW使用VI服务器的调用节点将数据传递到另一个VI 使用调用节点(Invoke Node)与通过引用调用节点(Call by Reference)调用VI时有什么差别?
581 0
|
Web App开发 安全 JavaScript
浙大恩特客户资源管理系统 fileupload.jsp 任意文件上传漏洞
杭州恩软信息技术有限公司(简称浙大恩特)提供外贸管理软件、外贸客户管理软件等外贸软件,是一家专注于外贸客户资源管理及订单管理产品及服务的综合性公司,该系统旨在帮助企业高效管理客户关系,提升销售业绩,促进市场营销和客户服务的优化。系统支持客户数据分析和报表展示,帮助企业深度挖掘客户数据,提供决策参考。
636 0
|
SQL 监控 大数据
优化AnalyticDB性能:查询优化与资源管理
【10月更文挑战第25天】在大数据时代,实时分析和处理海量数据的能力成为了企业竞争力的重要组成部分。阿里云的AnalyticDB(ADB)是一款完全托管的实时数据仓库服务,支持PB级数据的秒级查询响应。作为一名已经有一定AnalyticDB使用经验的开发者,我发现通过合理的查询优化和资源管理可以显著提升ADB的性能。本文将从个人角度出发,分享我在实践中积累的经验,帮助读者更好地利用ADB的强大功能。
341 0
|
域名解析 缓存 网络协议
计算机网络——网络基础_网络命令的使用(配置主机IP、ipconfig、ping、tracert、arp实战)
任务要求 打开Windows 10的命令(控制台)窗口。 实验步骤 有多种方法打开Windows命令(控制台)窗口。其中一种较为快速的方法是: 在键盘上按下“Win+R"组合键,系统将打开“运行"窗口,如图1-1所示。键入cmd.按回车键或单击“确定”按钮,Windows将打开命令(控制台)窗口,显示俞令提示符,如图1-2所示。
2563 1
计算机网络——网络基础_网络命令的使用(配置主机IP、ipconfig、ping、tracert、arp实战)
|
JavaScript
vue 页面向下滚动到指定位置时,顶部显示悬浮搜索框
vue 页面向下滚动到指定位置时,顶部显示悬浮搜索框
345 1
|
安全 开发工具 Swift
ios-class-guard - iOS代码混淆与加固实践
ios-class-guard - iOS代码混淆与加固实践
251 0