>[warning] 這里我們以[NEWLEARN_VIEW]權限來分析
### 代碼追溯分析
> 我們檢查整個項目中是否有此權限, 搜索[NEWLEARN_VIEW],
> 在[OFBIZ_HOME/specialpurpose/newlearn/data/NewLearnSecurityPermissionSeedData.xml]發現此權限, 定義如下:
> ~~~
> <SecurityPermission description="View operations in the NewLearn Component." permissionId="NEWLEARN_VIEW"/>
> ~~~
>
> 這里說明一下: 在這個文件里有一個[NEWLEARN_ADMIN]權限的定義, 而這個權限其實是包含了[VIEW、CREATE、UPDATE、DELETE]幾個顆粒的權限的.
> 也就是說, 只要[admin]用戶所在的用戶權限組中有[NEWLEARN_VIEW]或[NEWLEARN_ADMIN]其中任意一個權限都行.
>
> 全項目搜索[NEWLEARN_VIEW], 發下權限數據關聯定義如下:
> 在[OFBIZ_HOME/specialpurpose/newlearn/data/NewLearnSecurityGroupDemoData.xml]中有如下定義
> - ~~~
> <SecurityGroupPermission groupId="FLEXADMIN" permissionId="NEWLEARN_VIEW"/>
> <SecurityGroupPermission groupId="VIEWADMIN" permissionId="NEWLEARN_VIEW"/>
> ~~~
> 我們發現有兩個權限組都被賦予了可訪問權限, 我們再看看另外一個權限.
>
> 全項目搜索[NEWLEARN_ADMIN], 發下權限數據關聯定義如下:
> 在[OFBIZ_HOME/specialpurpose/newlearn/data]目錄下有兩個文件中有定義
> - 在[NewLearnSecurityPermissionSeedData.xml]中有如下定義
> - ~~~
> <SecurityGroupPermission groupId="SUPER" permissionId="NEWLEARN_ADMIN"/>
> ~~~
> - 在[NewLearnSecurityGroupDemoData.xml]中有如下定義
> - ~~~
> <SecurityGroupPermission groupId="FULLADMIN" permissionId="NEWLEARN_ADMIN"/>
> <SecurityGroupPermission groupId="FLEXADMIN" permissionId="NEWLEARN_VIEW"/>
> <SecurityGroupPermission groupId="VIEWADMIN" permissionId="NEWLEARN_VIEW"/>
> <SecurityGroupPermission groupId="BIZADMIN" permissionId="NEWLEARN_ADMIN"/>
> ~~~
> 在上述兩個文件中我們發現有很多權限組都被賦予了可訪問權限.
>
> 此時再搜索[admin]用戶被關聯了哪些權限組, 經過搜索列表如下
> ~~~
> <UserLoginSecurityGroup groupId="FULLADMIN" userLoginId="admin" fromDate="2001-01-01 12:00:00.0"/>
> <UserLoginSecurityGroup groupId="MYPORTAL_EMPLOYEE" userLoginId="admin" fromDate="2000-01-01 00:00:00.0"/>
> ~~~
> 我們發現[admin]用戶有[FULLADMIN]權限組, 而這個權限組又關聯了[NEWLEARN_ADMIN]權限, 這就意味著[admin]用戶被賦予了[NEWLEARN_ADMIN]權限, 即被賦予了[VIEW、CREATE、UPDATE、DELETE]幾個顆粒的權限.
> 所以[admin]賬戶根據這個配置分析, 已經正常的授予了[NEWLEARN_VIEW]權限的.
>
### 未導入到數據庫的異常
> 如果根據上面的過程分析[admin]賬戶是有[NEWLEARN_VIEW]權限的, 但是在權限檢查時依然返回[false]的話, 就需要對比項目和數據庫的實際數據了.
> 其可能的原因是: 這個權限配置并沒有被導入到數據庫.
> 我們回顧下運行項目的[ofbiz]指令, 這個指令整個過程都沒有涉及到任何數據的導入, 所以, 即使我們找到了權限配置的數據, 但是在數據庫其實是沒有這些配置數據的.
> 如果是這樣的話, 我們需要按照[OFBiz中怎么手工導入Data.xml數據](OFBiz中怎么手工導入Data.xml數據.md)操作, 導入權限數據.
> 導入順序如下: (不能亂順序, 因為有表數據外鍵依賴)
> 1. NewLearnSecurityPermissionSeedData.xml
> 2. NewLearnSecurityGroupDemoData.xml
- OFBiz開發手冊
- 關于
- 更新日志
- 快速引導
- 關于本書
- 關于作者
- 認知篇
- 認識OFBiz
- 什么是OFBiz
- 架構圖析
- 依賴庫
- 請求核心流程
- 獲取框架
- 衍生項目
- OFBiz的特點
- 框架特性
- 業務能力
- 框架優勢
- 框架劣勢
- 行業解決方案
- 架構對比
- OFBiz適應癥
- 適合我嗎
- OFBiz中國
- 中國業界
- 優秀博客
- 基礎篇
- 開發準備
- 操作系統
- 開發環境
- 框架導入IDE
- 配置運行
- 創建模塊
- 模塊介紹
- 模塊結構
- 模塊創建
- 模塊載入訪問
- 標準CRUD
- 文件關系
- 實體設計-Entity
- 國際化-UiLabel
- 配置菜單-Menu
- 配置請求-Controller
- 配置屏幕-Screen
- 配置表單-Form
- 配置服務-Service
- 配置業務腳本-Minilang
- 測試CRUD
- 基礎進階
- 中文環境配置
- 通用搜索服務
- 文件上傳
- Form表單驗證
- 導出PDF
- 導出Excel
- 發送Email
- 配置Job
- 配置視圖-view-entity
- 動態請求-ajax
- 常用功能
- 加速Gradle
- 常用命令
- 修改端口
- 調試模式
- 調試項目
- 重啟生效
- 數據導入
- 緩存清理
- 在線日志
- 更換數據庫
- 實體設計管理
- 表數據管理
- 配置本地dtd
- 使用Static靜態文件
- 驗證碼-RandomCode
- 主題切換-Theme
- 時區切換-TimeZone
- 語種切換-Language
- webtools在線框架管理功能介紹
- 編碼規范
- 駝峰命名法
- 代碼編碼規范
- 實體設計規范
- 字段類型規范
- 請求命名規范
- 業務實現規范
- 提高篇
- 環境上下文
- 上下文-ftl
- 上下文-groovy
- 上下文-event
- 上下文-form
- 上下文-screen
- 上下文-minilang
- 標簽API
- 實體設計-entitymodel
- 實體觸發器-eeca
- 國際化-UiLabel
- 菜單-Menu
- 請求-Controller
- 屏幕-Screen
- 表單-Form
- 服務-Service
- 服務觸發器-seca
- 腳本-Minilang
- 腳本-Groovy
- 模板-Freemarker
- 演示數據-Data
- PDF標簽-XSL-FO
- 工具類
- 調試-Debug.java
- 對象類型-ObjectType.java
- 字符串工具-StringUtil.java
- 日期時間-UtilDateTime.java
- 通用-UtilGenerics.java
- Http-UtilHttp.java
- 綜合-UtilMisc.java
- 屬性-UtilProperties.java
- URL-UtilURL.java
- 校驗-UtilValidate.java
- XML操作-UtilXml.java
- 高級實現
- 忽略版本控制
- 配置項目使用MySQL數據庫
- 配置項目使用Postgres數據庫
- 擴展支付寶支付
- Webservice公共服務
- Rest接口
- Ftl自定義宏與使用
- 接入條形碼
- 接入二維碼
- 自定義主題-Theme
- error頁面自定義
- 接入SMS手機短信服務
- QQ微信聯合登錄
- 微信服務號接管
- 頁面靜態化
- CMS幫助中心
- 訪客IP與城市定位
- 使用二級域名
- Tenant多租戶應用
- date-time中國化顯示
- datepicker日期控件
- 圖片處理
- SSL安全證書
- 接入workflow
- 使用solr搜索引擎
- 生產服務器性能優化
- 框架篇
- 框架模塊
- 模塊關系
- 框架基礎-base
- 通用功能-common
- 運行容器-catalina
- 實體引擎-entity
- 靜態資源-images
- XML腳本-minilang
- 用戶權限-security
- 服務引擎-service
- 項目啟動-start
- 測試工具-testtools
- 應用站點-webapp
- 在線框架管理-webtools
- 裝飾器-widget
- 核心類
- 請求核心類
- 實體核心類
- 服務核心類
- 框架原理
- Start啟動過程
- 實體引擎
- 請求控制
- 服務引擎
- ECA觸發器
- 實體主鍵生成器
- Job定時任務
- 跨模塊免登陸訪問
- 無處不在的UEL表達式
- cache緩存的實現
- minilang原理
- 實體相關資源加載模式
- OFBiz支持的模塊目錄
- OFBiz請求處理過程分析
- 權限
- 權限介紹
- 權限分布
- 權限運用
- 重要文件
- 模塊加載component-load.xml
- 模塊配置ofbiz-component.xml
- 站點配置web.xml
- 緩存cache.properties
- 調試debug.properties
- 綜合配置general.properties
- 二維碼qrcode.properties
- 安全security.properties
- 服務端統計serverstats.properties
- 啟動配置start.properties
- 網絡訪問配置url.properties
- 裝飾器配置widget.properties
- 業務篇
- 業務模塊
- 業務介紹
- 模塊關系
- 內容-content
- 當事人-party
- 人事-humanres
- 商品-product
- 跟進-marketing
- 訂單-order
- 制造-manufacturing
- 人工服務-workeffort
- 財務-accounting
- 行業解決方案
- 電商綜合應用
- 運維篇
- 運行環境
- 服務器硬件要求
- Linux服務器初始化
- JDK安裝與配置
- MySQL安裝與配置
- SVN客戶端安裝
- Nginx安裝與配置
- 項目部署
- 項目父目錄
- 修改端口
- 一個服務器運行多個項目實例
- 運行項目
- 常用命令
- 番外篇
- 進階技巧
- 標準CRUD完整模板
- 參考書目與簡介
- 數據模型資源手冊
- Freemarker語法
- Freemarker介紹
- Groovy語法
- Groovy介紹
- Groovy比之Java
- OFBiz中的Groovy增強
- 常見問題
- Ftl中文亂碼
- PDF中文亂碼
- 數據庫中文亂碼
- Console中文亂碼
- 下載文件亂碼
- http鏈接存數據庫異常
- html代碼存數據庫異常
- OFBiz框架精簡
- OFBiz_v16.11初始化好慢 為什么?
- 怎么查看自己的項目基于OFBiz的哪個版本
- IDEA里Gradle執行命令時提示 No cached version available for offline mode 錯誤
- OFBiz為什么可以下載了就能直接運行起來用?
- 用IDEA手工執行Gradle指令
- 不允許你瀏覽這個頁面
- 使用[loadDefault]或[load-demo]指令到底加載了哪些實體和數據
- OFBiz中怎么手工導入Data.xml數據
- 怎么確認一個用戶是否配置并授予了某個權限
- 哪些情況下需要重啟OFBiz系統
- 如何清空緩存呢?
- MySQL或PostSQL等數據庫時,更新一個實體字段類型,重啟OFBiz并沒有生效,為什么?
- 實體添加字段,重啟在數據庫沒看到此字段,為什么?
- Gradle項目在Eclipse中自動鏈接依賴的jar包
- 解決Gradle項目導入Eclipse后拋出UnsupportedConfigurationException異常
- 為Eclipse安裝Gradle環境
- Eclipse配置顯示工具窗口
- 用Eclipse手工執行Gradle指令
- 回答問題
- 看云使用小記