本章介绍如何管理社区及其用户。社区所有者可通过社区信息 Portlet 实现此功能。系统管理员还可通过 Portal Server 管理控制台和 psadmin 命令行界面来实现此功能。有关管理社区的命令行实用程序的信息,参阅《Technical Note: Managing Sun Java System Portal Server 7.2 Update 1 Communities》技术说明。
如果需要为门户设置“社区属性”,可执行以下链接中的添加社区范例过程:http://docsview.sfbay/app/docs/doc/820-0043/gdsbd?1=en&a=view。
本章包含以下各节:
本章包含以下部分:
虽然“社区”通常意味着公开,并且每个人都能访问信息,但是仍然很有必要在社区中建立访问控制。在基于企业的社区中,可能需要限制特定社区,并保证发布到这些社区的数据的私有性和安全性。本节描述可用的访问控制设置及其常用配置。
以下是可根据社区需求设置访问控制的三个社区部分。
成员资格不受限(公开):不限制成员资格的社区对所有用户开放。
成员资格受限(私有):限制成员资格的社区需要用户向社区的所有者发出请求,然后等待所有者批准或拒绝其成员资格。或者,所有者可邀请或明确地添加一个或多个用户至社区。
列出(公开):社区在社区类别中注册,可供所有用户浏览和搜索。
未列出(私有):无法在社区类别中搜索和浏览社区。
未保护(公开):非社区成员可搜索及访问在社区中发布的数据。
受保护(私有):所有在社区中发布的数据都受到严格保护,只有社区成员才能对其进行搜索及访问。
在创建社区期间或之后,社区所有者或系统管理员可以控制访问控制的各个部分。请注意,在可用设置这一节中描述的各种设置都相互独立。也就是说,选择一个设置的选项不会影响其他设置的行为或选项。例如,可以不列出(不限制成员资格的)社区,同时可以保护其内容。社区所有者可以根据社区的特性自定义访问控制。这里介绍了两种最常用的配置。
所有用户都可加入公共社区并获得其成员资格。社区在社区类别中列出,可供所有用户浏览和搜索。而且所有用户都可以搜索和访问在社区中发布的内容。
使用旧版 Portal Server 软件创建的社区被视为公共社区,且会在系统升级为此版本的 Portal Server 软件时被当作公共社区操作。
私有社区是最安全的社区。它不会在社区类别中显示,因此无法对其进行浏览或搜索。私有社区是未列出且受保护的社区,此社区限制了成员资格。社区所有者可邀请或手动添加用户至社区。社区的内容受到保护,非社区成员无法查看或搜索任何发布的内容。
可以在社区中为用户分配不同的角色。两种主要的角色是 OWNER 和 MEMBER。角色为 MEMBER 的用户拥有常规的成员权限。如果同时为其分配了 OWNER 角色,则此用户还会拥有管理社区的权限。用户所拥有的权限和可查看的内容,是通过合并每个分配给用户的角色所对应的各种显示配置文件来控制的。系统管理员在为每个社区角色设计显示配置文件模板时必须非常仔细。有关详细信息,参见社区模板一章。
非社区成员用户实际上获得了 VISITOR 角色,因此非社区成员用户访问特定的社区页面时会合并 visitor.xml。如果用户没有明确的角色或只拥有 BANNED、INVITED、PENDING 和 REJECTED 等临时角色,则此用户为非社区成员。
要加入私有社区或者限制了成员资格的社区,用户需要请求成员资格。然后由社区所有者批准或拒绝请求。如果得到批准,该用户可以立即成为社区的成员。如果请求被拒绝,用户会在登录到门户后收到拒绝通知,并在确认拒绝通知后返回访客状态。被拒绝的用户稍后可再次提交请求。如果所有者不希望用户再提交成员资格请求,也可将其禁止。
VISITOR --request membership--> PENDING/VISITOR--> approved--> MEMBER VISITOR --request membership--> PENDING/VISITOR--> denied | -->REJECTED/VISITOR --acknowledges--> VISITOR
社区所有者可邀请用户加入社区。受邀请的用户会在登录到门户时看到邀请。随后用户就可以接受或拒绝邀请。
VISITOR--> invited--> INVITED/VISITOR--> accepts--> MEMBER VISITOR--> invited--> INVITED/VISITOR--> declines--> VISITOR
如果系统设置正确,会通过电子邮件向受邀请的用户发送邀请消息。为了通过电子邮件收到邀请,用户必须在门户中正确配置自己的电子邮件地址。
“禁止”是所有者拒绝特定用户访问社区的过程。可以禁止社区成员、非社区成员甚至所有者访问社区,在限制了成员资格的社区,被禁止用户甚至无法提交加入社区的请求。
所有者可解禁被禁止的用户,并恢复其用户权限。如果用户被禁止前是社区成员,则解禁后会恢复为社区成员。同样,如果用户被禁止前是社区的所有者,则解禁后会重新成为社区的所有者。
MEMBER--> banned--> BANNED/VISITOR--> unbanned--> MEMBER OWNER/MEMBER--> banned--> BANNED/VISITOR--> unbanned--> OWNER/MEMBER
本节包含以下内容:
门户管理员可使用 Portal Server 管理控制台或 psadmin CLI 禁用社区。同样,只有门户管理员可以重新启用被禁用的社区。所有用户(包括社区成员和所有者)都无法访问被禁用的社区。同样也无法搜索任何在被禁用的社区中发布的内容。新创建的社区在默认情况下是启用的。
可使用 disabled.xml 模板得知如何向用户显示被禁用的社区。有关社区模板的显示配置文件的详细信息,参见了解社区模板。
社区所有者或系统管理员可以删除社区。无法访问删除后的社区及其数据。但数据仍然留在后端存储器中,因此可以根据需要恢复社区。恢复被删除社区的任务由门户管理员完成。撤销功能旨在恢复被恶意删除或意外删除的社区。由于删除不是永久性的,因此无法创建名称相同的新社区。目前不能永久删除社区。但我们可以使用 psadmin 的子命令 destroy-community 来永久删除社区。
可使用 deleted.xml 模板得知如何向用户显示被删除的社区。有关社区模板的显示配置文件的详细信息,参见了解社区模板。
创建和浏览社区时使用的类别树由搜索服务器的分类法提供。有关如何对其进行管理的详细信息,参见管理类别。
本章包含以下部分:
本节包含以下内容:
社区模板由一组服务(通道)和可视布局组成。但是,社区模板不一定会指明布局,例如在 Wiki 社区模板中布局由 Wiki 自己指明。社区模板在角色显示配置文件文档中定义了可用于社区的服务的类型、每种服务的默认设置以及绑定服务的容器。
实际上,社区模板是由属性文件、图片以及一个或多个显示配置文件文档组成。每种社区角色(例如 OWNER、VISITOR 和 MEMBER)都拥有显示配置文件文档。每个角色模板定义了与特定角色相关的服务和布局(有关这些角色的详细信息,参见管理成员资格)。显示配置文件文档中会显示角色模板的内容。实际上,社区模板包含处理不同角色(每个角色对应一个显示配置文件文档)以及依存于一个或多个角色的逻辑,您将获得一组不同的服务和不同的布局。将社区标记为删除 (deleted.xml) 或禁用 (disable.xml) 时,也会产生用于自定义内容的显示配置文件文档。
可通过社区模板创建社区。系统可以拥有任意数量的社区模板。在“企业范例”中,最终用户在创建社区后选择社区模板。
社区模板存储在文件系统中。社区模板存储在 PortalServer-DataDir/portals/portal-URI/communitytemplates 目录中(称为 communityTemplateBaseDir)。请注意,这表示每个门户(在多门户部署环境中)必须拥有一组自己的社区模板。communityTemplateBaseDir 中的资源包定义了与每个模板相关的元数据。此外,每个模板都拥有用于存储角色模板的目录。
communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template2 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | -+-- template3 -+-- deleted.xml | | | +-- disabled.xml | | | +-- member.xml | | | +-- owner.xml | | | +-- visitor.xml | +-- template1.properties | +-- template1_en.properties | +-- template1_fr.properties | +-- template2.properties | +-- template3.properties | +-- template3_en_US.properties | +-- ...
显示配置文件 disabled.xml 和 deleted.xml 文件控制社区在被禁用或被标记为删除后的内容。有关详细信息,参见管理社区状态。
门户管理员可以在系统中添加新的社区模板、更新现有社区模板、归档和恢复社区模板,也可以将社区模板从某个门户实例导出至其他实例,和/或使这些模板保持同步。
每个模板都由一个或多个 XML 格式的角色模板(member.xml、owner.xml、visitor.xml、deleted.xml、disabled.xml)组成。模板目录包括它所服务的角色的 XML 文件,例如用于社区成员的 member.xml、用于社区所有者的 owner.xml 和用于社区访客的 visitor.xml。
每个角色模板都是该角色的社区用户的显示配置文件文档。文件必须基于显示配置文件 DTD。
<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd"> <DisplayProfile version="1.0" priority="%COMMUNITY_DP_PRIORITY%"> <Properties/> <Channels> <Container name="%COMMUNITY_CONTAINER%" provider="JSPTableContainerProvider"> <Properties> <String name="title" value="%COMMUNITY_NAME%"/> <String name="description" value="%COMMUNITY_DESCRIPTION%"/> <Boolean name="compileToRealPath" value="true"/> </Properties> <Available>...</Available> <Selected>...</Selected> <Channels>...</Channels> </channels> <Providers/> </DisplayProfile>
在创建社区时,模板引擎会使用实际值动态替换显示配置文件中的下述令牌(以 % 相括)。
为社区指定(用户友好)名称。例如,tourists。
指定标识社区的唯一字符串。该名称实际上是内部标识,并不会在用户界面上显示。例如,jdo__tourists。
包括社区的描述。
指定社区的顶级容器。例如,jdo__touristsContainer。
指定合并了产生社区显示配置文件的优先级的显示配置文件。每个角色都有不同的值。默认情况下,访客角色、成员角色和所有者角色的值分别为 1000、1005 和 1010。
指定社区的搜索服务器 URL。
指定社区内容的搜索数据库。
指定讨论数据库。
指定门户的 ID。例如,portal1。
每个模板都包含定义了与该模板相关的元数据的资源包属性文件。资源包称为描述符文件,可以进行本地化。每个模板描述符文件(必须)定义以下属性:
指定模板的唯一 ID。ID 必须与模板目录名称匹配。例如,如果某个模板目录的名称为 Baseball,且该目录带有所有的三种支持的角色的角色模板(或 XML 文件),则该目录的 ID 应该是 Baseball。
在用户界面(Portal 桌面)中指定用户友好的名称来标识模板。例如,Baseball Template。
详细描述模板及其所提供的服务。例如,Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat。
包含模板角色文件中所用的令牌的列表。这仅供参考,而不是必需的。例如, %COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER%。
为门户上下文指定绝对 URI 或相对 URI。例如,http://images.domain.com/images/baseball.jpg。相对 URI 必须对应于门户 web-app 上下文路径。
id=Baseball name=Baseball Template description=Baseball-themed template containing the following services: Player Statistics, Game Discussions, TV Schedule, and Online Chat tokens=%COMUNITY_ID% %COMMUNITY_DESCRIPTION% %COMMUNITY_CONTAINER% previewImageURI=http://images.domain.com/images/baseball.jpg |
可按照本节中的指导创建新模板或修改现有模板。您可通过以下三种方式之一创建模板:
使用 psadmin 实用程序导出模板、添加内容和导入内容。
创建内容和导入内容以覆盖现有模板。
向现有模板添加新文件。
转至 communityTemplateBaseDir。
创建以下内容:
新模板的新目录
将现有模板复制到新的模板目录
例如,键入:
cd PortalServer-DataDir/portals/portal-URI/communitytemplates mkdir NewTemplate cp 2column/* NewTemplate/ |
根据需要在新模板目录中修改基于角色的显示配置文件文档。
有关基于角色的显示配置文件文档的详细信息,参见模板的语法和语义。
创建和编辑属性文件,以使其包含“模板描述符文件”中描述的属性,并保存文件。
例如,要为新模板创建新的属性文件,可键入:
cp 2colimn.properties NewTemplate.properties |
或者,
touch NewTemplate.properties |
要查看新添加的模板,可注销所有当前的门户会话,并重新登录以查看更改。
在多门户环境中(系统中有一个以上的门户),使用 PAR 机制(不是直接编辑 communityTemplateBaseDir 中的文件)以跨多个门户应用社区模板的更改。这将允许所有门户拥有一组相同的社区模板。如果不希望使用跨门户的同步环境,可参考为单门户环境创建新模板中的指导。
可使用 psadmin export --type desktop 导出桌面数据(包含社区模板),然后将该数据导出以编辑内容;也可只使用社区模板(而不使用任何其他桌面数据)从头开始创建新的 PAR 结构。
请按照为单门户环境创建新模板中的指导来编辑内容。
创建包含以下内容的新 PAR 文件:
-+-- META-INF -- MANIFEST.MF | +-- pbfiles -+-- communityTemplateBaseDir -+-- template1 -+-- deleted.xml | | | | | +-- disabled.xml | | | | | +-- member.xml | | | | | +-- owner.xml | | | | | +-- visitor.xml | | | +-- template1.properties | | | +-- template1_en.properties | | | +-- template1_fr.properties | | | +-- ... | +-- static -- community -- images -- template1.gif
根据需要编辑或添加内容。
创建新的 PAR 文件。
使用 psadmin import 子命令跨所有门户导入 PAR 内容。
如果您导出所有桌面数据,请注意 psadmin export 子命令将导出所有桌面数据;如果您只使用社区模板从头开始创建新 PAR 结构,则该命令仅会导出社区模板。
有关详细信息,参见《Sun Java System Portal Server 7.2 Command-Line Reference》中的“psadmin export”。
本节介绍如何在 Sun JavaTM System Portal Server 管理控制台中创建和管理社区及社区用户。
“社区管理”页面中的表格列出了门户中的社区。用户可以搜索社区、管理社区和社区用户。
社区管理表格包含以下信息:
社区名称
社区中的用户数量
指明是启用还是禁用社区
指明社区是活动的还是标记为删除
指明是列出还是未列出社区
指明社区是否限制成员资格
指明社区是否受保护
有关如何管理社区和用户的步骤,参见管理社区和用户。
本节介绍如何在 Sun Java System Portal Server 管理控制台中管理社区和用户。
使用以下步骤管理社区和用户:
在“门户”选项卡中单击某个门户。
单击“社区”选项卡。
显示“社区管理”页面。
在“搜索社区”文本框中键入社区的名称,然后单击“搜索”。
列出符合搜索条件的社区.
可以使用通配符进行搜索。例如,如果您的搜索条件是 *blog,则会列出所有名称中的任意位置处包含词语“blog”的社区。键入 * 将显示所有社区。
在“门户”选项卡中单击某个门户。
单击“社区”选项卡。
显示“社区管理”页面。
选择社区。
一次只能管理一个社区
单击“管理当前用户”按钮。
显示“管理用户”页面。
单击“添加”按钮。
显示“添加社区用户”页面。
如果要更改现有用户的状态,请转至第 7 步。
在“用户 DN”文本框中键入用户名称,然后单击“添加”。
要更改现有用户的状态,可选择用户。
单击某个可用的选项按钮。
可用的选项如下:
删除 – 从社区中删除用户
分配所有权 – 为社区成员分配所有者权限
取消分配所有权 – 删除所有者权限
禁止 – 从社区禁止
取消禁止 –取消从社区禁止
单击“返回”回到“社区管理”页面。
在“门户”选项卡中单击某个门户。
单击“社区”选项卡。
显示“社区管理”页面。
选择社区,然后单击“管理待定用户”按钮。
显示“管理待定用户”页面。
从“等待通过成员资格审批”表格中选择某个用户,并单击“批准”或“拒绝”按钮。
单击“返回”回到“社区管理”页面。
在“门户”选项卡中单击某个门户。
单击“社区”选项卡。
显示“社区管理”页面。
在“名称”下选择社区。
可以选择多个社区。
单击“标记为要删除”按钮。
要永久删除社区,请使用命令:psadmin remove-community -u amadmin -f password_file -p portal --name community_name
社区搜索和管理功能包括社区 Web 服务。默认情况下,社区 Web 服务 URL 包含与第一个门户实例相同的主机。在使用负载平衡器的多节点安装中,您可更改社区 Web 服务 URL 以使用负载平衡器主机。
在终端窗口中键入以下内容:
./psadmin get-attribute -u amadmin -p portal-URI -m communities -a WebServicesURL
./psadmin set-attribute -u amadmin -p portal-URI - m communities -a WebServicesURL URL
指定管理员的标识名。
指定门户 ID。
指定 WebServicesURL 属性的值。例如,URL 可以采用 http://foo.com:8080/communitymanagerwebservices/communitymanagerwebservices 的格式。请注意 URL 的 communitymanagerwebservices/communitymanagerwebservices 部分绝不能更改。
WebServicesURL 属性没有默认值。默认情况下,空值表示将使用第一个门户实例的主机。