`
anhuiqm
  • 浏览: 10394 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ofbiz登录和关联party机制

阅读更多
在party模块中让userLogin拥有的partyId的字段,这样一个用户登录了之后就能关联到他自己的party了。party模块下实体定义中UserLogin的扩展,代码如下:
--------------------------------------------------------------------------------
<extend-entity entity-name="UserLogin">
     <field name="partyId" type="id"></field>
     <relation type="one" fk-name="USER_PARTY" rel-entity-name="Party">
         <key-map field-name="partyId"/>
     </relation>
     <relation type="one-nofk" rel-entity-name="Person">
         <key-map field-name="partyId"/>
     </relation>
     <relation type="one-nofk" rel-entity-name="PartyGroup">
         <key-map field-name="partyId"/>
     </relation>
</extend-entity>

--------------------------------------------------------------------------------
这样给UserLogin表扩展了之后在任何其他有UserLogin的地方都能获得Party了。
具体扩展关联Party的表全在这个实体定义文件中。也就是那些扩展了partyId的扩展实体。
1.具体有登录历史记录UserLoginHistory中关联了参与者。在LoginServices.java中有如下代码记录了登录记录
--------------------------------------------------------------------------------
if (createHistory) {
                 	 Map<String, Object> ulhCreateMap = UtilMisc.toMap("userLoginId", username, "visitId", visitId,	"fromDate", UtilDateTime.nowTimestamp(), "successfulLogin", successfulLogin);

	ModelEntity modelUserLogin = userLogin.getModelEntity();
	if (modelUserLogin.isField("partyId")) {
		ulhCreateMap.put("partyId", userLogin.get("partyId"));
	}
// ONLY save the password if it was incorrect
	if ("N".equals(successfulLogin) && !"false".equals(UtilProperties.getPropertyValue("security.properties", "store.login.history.incorrect.password"))) {
              ulhCreateMap.put("passwordUsed", password);
        }

//Debug.logInfo(new Exception(), "=================== Creating new UserLoginHistory at " + UtilDateTime.nowTimestamp(), module);	
	delegator.create("UserLoginHistory", ulhCreateMap);
}
--------------------------------------------------------------------------------
这样一句ulhCreateMap.put("partyId", userLogin.get("partyId"));关联了Party。
2.类似的ServerHitBin.java 657行对服务调用记录ServerHit表进行了关联Party。
3.类似的VisitHandler.java 55和68行对网站访问记录Visit和Visitor表进行了关联Party。
4.另外还有个在登录的时候通过UserLogin获取Person(一种类型的Party)放在session中,代码在LoginWorker.java中。559行和771行。
感觉上Party是在后面加上去的,以前只有UserLogin的感觉,后来有了Party,把一些记录UserLogin的地方关联一下Party。比如登录记录什么的。
如我我们的Party的主键不止一个的时候我们可以有2中方法解决和ofbiz的兼容。
1.UserLogin中加上你的Party的所有主键。在所有出现modelUserLogin.isField("partyId")的地方,多put进去你在UserLogin中获取的主键。记得扩展上面我们1、2、3的表和修改上面这些应用的展示地方修改获取Party。
2.改Party的主键为一个类似工号的一个字段为partyId,保证唯一,原来主键的直接放在Party中。ofbiz中其他地方不变。
分享到:
评论

相关推荐

    ofbiz sso 单点登录

    单点登录(Single Sign-On,简称 SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在 ofbiz 中,SSO 实现是通过集成 Central Authentication Service(CAS)和 ...

    ofbiz10.04表结构

    这种可视化工具对理解数据库设计非常有帮助,开发者可以快速查看和分析表间的关联。 3. "OFBiz其它资源.txt":这个文件可能包含了一些额外的链接、提示或说明,可能是对OFBiz开发、部署或使用的补充资料。 综上所述...

    OFBiz财务分析

    OFBiz 财务分析 OFBiz 财务模块分析是学习 OFBiz ...因此,OFBiz 财务模块分析文档是学习 OFBiz 的不错的文档,可以帮助学习者更好地理解 OFBiz 财务模块的工作机制和实现原理,并且可以应用于实际的财务管理工作中。

    ofbiz-opentaps表关联

    opentaps 所有表关联,HTML的。

    ofbiz开发手册

    OFBiz 术语和信息的了解将有助于开发者更好地理解 OFBiz 的工作机制和实现原理。 OFBiz 环境搭建和安装的注意事项 OFBiz 环境搭建和安装需要注意的一些问题,例如,Java 的版本问题、数据库的选择问题、应用程序...

    Ofbiz 数据库全模型

    在Ofbiz中,数据库模型通常采用ER(实体关系)图来表示,通过这种方式可以清晰地看到各个实体以及它们之间的关联。这些模型定义了实体的属性(字段)、键(主键和外键)、索引以及其他数据库设计要素。 "Ofbiz...

    ofbiz数据结构设计

    实体间通过关系相互关联,如一个订单可以包含多个产品,这在数据结构中体现为订单实体和产品实体之间的多对一关系。 二、实体引擎(Entity Engine) OFBiz的实体引擎负责处理与数据库交互的事务,包括数据的读取、...

    ofbiz学习笔记(自学整理)

    通过创建和修改简单的服务和实体,你可以逐步理解Ofbiz的工作机制。例如,创建一个新的产品类别,涉及编写实体定义、服务调用以及可能的GUI界面。这将帮助你理解Ofbiz如何在数据库中存储信息,如何通过服务接口操作...

    ofbiz 数据模型 中文手册

    在OFBiz项目中,数据模型是其业务逻辑的基础,其中定义了大量的数据库表以及它们之间的关联和约束。本手册主要翻译了核心数据模型中的表结构和字段,以及提供了主键、外键、非空字段的说明。 核心数据模型涵盖了几...

    ofbiz权限(全)

    ### OFBiz权限系统详解 #### 一、设计思想简述 在OFBiz权限管理系统中,采用了“安全组”(SecurityGroup)的...通过以上九个级别的权限控制,OFBiz能够提供全面且细致的安全保障机制,确保系统的安全性和合规性。

    Apache OFBiz Cookbook

    - **高级管理员**:高级用户可以通过本书深入学习 OFBiz 的内部机制及优化策略,从而更好地管理和维护系统。 #### 三、关键知识点详解 1. **安装与配置**: - **环境搭建**:介绍如何设置开发环境,包括必要的...

    Ofbiz数据模型查询手册

    《Ofbiz数据模型查询手册》详细记录了开源企业资源规划系统...需要注意的是,由于文档是通过OCR扫描出来的,可能存在一些识别错误或遗漏,所以在应用这些知识点时,需要结合实际的OFBiz环境和代码库进行验证和调整。

    OFBIZ开发指南 英文2

    事件和监听器机制使得系统更具响应性和动态性。 在实际开发中,你还需要掌握OFBIZ的开发工具和环境,如Apache Ant用于构建,Maven用于依赖管理,Eclipse或IntelliJ IDEA作为集成开发环境。同时,熟悉OFBIZ的配置...

    关于OFBIZ的资料

    通过深入探索OFBIZ_Demo,无论是初学者还是经验丰富的开发者,都可以进一步了解OfBiz的强大功能,掌握其核心概念和操作技巧,从而更好地利用这个平台来构建和管理企业的业务流程。记得定期检查Apache OfBiz的最新...

    ofbiz安装与配置

    我们可以使用 Eclipse 打开 Ofbiz 的 Ant 命令,以便编译和运行 Ofbiz。我们可以在 Eclipse 的“Window”菜单中选择“Show View” &gt; “Other”,然后选择“Ant”,点击“OK”,然后点击 Ant 视图中的“”,选择...

    OFBIZ10.04组件开发入门.doc

    事件是OFBIZ处理用户请求和业务逻辑的核心机制,分为HTTP事件和服务事件。HTTP事件处理页面请求,服务事件执行业务逻辑。 ### 11. 服务(Service) 服务是OFBIZ中实现业务逻辑的单元,定义在`service.xml`文件中。...

    ofbiz综合使用手册

    【ofbiz综合使用手册】是针对初学者的指导材料,主要介绍了如何配置和使用ofbiz这一企业级开源应用框架。ofbiz遵循了Model-View-Controller(MVC)设计模式,这种模式对于大型商业逻辑项目的开发尤其有益,因为它...

    Apache.OFBiz.Development

    安装OFBiz涉及到获取源代码、安装和配置必要的软件工具和环境。 2. 使用SVN:版本控制系统SVN(Subversion)是获取OFBiz源代码的途径之一。TortoiseSVN是SVN的一个客户端,用于通过图形界面来操作SVN仓库。 3. ...

    ofbiz git 服务搭建

    OFBiz是一个开源的企业级应用框架,主要用于构建和管理电子商务系统。本教程将详细介绍如何在本地环境中搭建OFBiz项目,并使用Git进行版本控制。 首先,确保你拥有以下基础环境: 1. JDK 1.7:Java开发环境,OFBiz...

    ofbiz api开发文档

    OFBiz API 是OFBiz框架的核心组成部分,它提供了丰富的接口和方法,使得开发者能够轻松地与OFBiz的各个业务组件进行交互。API的设计遵循了面向服务架构(SOA),支持RESTful风格的Web服务,同时也提供传统的Java ...

Global site tag (gtag.js) - Google Analytics