Spoolgen Web API 项目创建与权限管理
约 2637 个字 预计阅读时间 9 分钟
概述
本文章旨在指导如何使用Spoolgen Web API创建Spoolgen项目,并进行权限管理,以确保每位用户只能访问具有权限的Spoolgen项目。当前软件最新版本为Spoolgen Web API 2.1 HF2+Spoolgen 10。
案例
下面这段话比较啰嗦,但请耐心看完,并试图理解,这样你就更能明白下面的案例为什么要这么做了。
我们知道,来自不同设计院的pcf/idf文件结构通常是不同的,这意味着对于这些来自不同设计院的pcf/idf文件,如果想创建一个Spoolgen项目完成对所有pcf/idf文件的解析,往往是做不到的,它们之间很可能会有冲突。
最好的做法有两种,第一种是在项目前期就规定好pcf/idf文件的交付规范,这些规范不仅要规定pcf/idf文件中所要包含的必要的属性,还要明确每个属性的存储位置,确保文件结构一致。这种做法具有从根本上规范pcf/idf文件的作用,这样我们最多只需创建两个Spoolgen项目就可以完成对所有pcf/idf文件的一致性解析,即一个项目解析pcf文件,另一个项目解析idf文件,如果项目中只存在一种文件,只需要一个Spoolgen项目即可。但是,Spoolgen项目的定制往往是靠后进行的,此时可能已经过了最佳的规范文件格式的时间,各家设计院可能已经在用五花八门的文件结构输出pcf/idf文件。
因此,第二种做法往往更为通用:一个Spoolgen项目只解析来自某一家设计院的pcf/idf文件,只需要分析解构这家设计院的文件结构就可以了。而这种做法的弊端是,如果一家设计院的文件给到多家施工单位去做管道细化设计、采买、领料、预制、运输、施工的话,问题不大,但如果某家施工单位要处理多家设计院的文件,就意味着他们往往需要在多个Spoolgen项目中进行切换,这就需要规范Spoolgen的用户的操作,万万不能混用,不同的Spoolgen项目是针对不同设计院进行定制的。这会稍稍增加Spoolgen使用的繁琐,但这一方案确实是权衡多方因素的最优解。
了解了这些因素,我们来看一个案例:
设计院A和设计院B交付了他们的pcf文件,文件结构不一样。现在施工单位1和施工单位2要进行管道细化设计,每个施工单位都要设计这两家设计院的pcf文件,且生成的图纸中要包含设计院的logo,施工单位的logo以及业主的logo。
一图来说明:
对于Spoolgen项目我们需要创建4个,根据施工单位的不同,我们需要创建两个权限组,并根据权限组来划分Spoolgen项目的归属及用户的归属,做到施工单位1下的用户User1和User2只能登录使用Spoolgen项目1和Spoolgen项目3,施工单位2下的用户User3只能登录使用Spoolgen项目2和Spoolgen项目4。
要实现的步骤就是最右侧所列的三步操作。
创建Spoolgen项目
-
管理员找到一台安装配置好的客户端,在开始菜单中找到Intergraph Smart Isometrics下的
I-Configure工具,点击打开; -
点击工具条第一个图标
New Isometric Directory按钮,在弹出的文件夹选择对话框中,选择一个文件夹作为创建Spoolgen项目的一个层级。注意文件夹名及路径不要出现中文; -
Directory添加后,就可以在左侧目录树中看到它。可以多次添加。我这里添加了两个层级,分别给施工单位1和施工单位2使用。这里不能通过复制修改的方式快速创建多个项目,必须要按照流程创建,因为要将项目注册到数据库中;
-
在客户端打开浏览器,访问Sam管理网站,登录成功后,点击左侧的
Smart APIs,在右侧点击Intergraph Spoolgen Web Api,记录下Intergraph Spoolgen Web Api的URL,后续会用到。 -
选中一个层级后,点击工具条第二个图标
New Project按钮,打开New Project对话框,输入New project name,Application下拉选择IsogenDatabase,点击OK按钮,会打开新的弹窗,在Url处输入上一步骤获取到的URL值,等待校验通过后,Url后面会出现绿色对钩,点击OK按钮,弹出Login登录界面; -
选择
Local Credentials验证方式,使用超级管理员账号密码登录,登录成功将开始创建Spoolgen项目; -
创建项目成功后,选中该项目,点击
Project Defaults按钮,在打开的XXX Project Defaults对话框中,将Use Windows Authentication设置为False,点击OK按钮以保存设置。用户在打开Spoolgen连接项目时需要登录,但对于使用网络域名的情况,这里如果不进行修改,会默认使用IWA验证,而IWA验证使不会通过的,因此建议无论是局域网环境,还是公网环境,都把这里设置为False; -
循环第5~7步,创建四个Spoolgen项目。其实登录一次后,接下来三个DB项目创建时,不需要再次登录,程序在关闭前会保持账号登录状态。Url在输入一次之后,也可以在后续通过下拉选到,会有记录。
创建权限组并将项目分配给相应权限组
此时,虽然四个Spoolgen项目在两个层级下被创建,但在Spoolgen Web API管理系统及数据库中,这些项目都是并列存在的。我们需要引入权限组将这项项目隔离开。
-
使用超级管理员账号密码登录Spoolgen Web API管理系统,将看到我们已经创建的四个Spoolgen项目;
-
点击左侧的齿轮图标,在展开的菜单中点击
Access Groups按钮,打开Access Groups设置界面; -
点击中间下方的
+图标,在弹出的Create Access Group对话框中输入权限组的Name和Description,点击CREATE按钮即可创建一个权限组; -
同样的步骤创建第二个权限组,结果如下图;
-
选中一个权限组,点击右下角的
+按钮,在弹出的Add projects to XXX对话框中选择要添加到该权限组的项目; -
同样的方式,为所有项目分配对应的权限组。实际上,这里并非强制要求一对一地去分配,也就是说,某一个项目可以同时被分配给多个权限组;
-
如果要增删权限组中的项目,也是很容易操作的。
为权限组添加相应的用户
创建用户
-
使用超级管理员账号密码登录Sam管理系统,在左侧点击
Users按钮,打开用户管理页面; -
点击右下角
+按钮,打开Register a User对话框,按要求输入first name、last name和email address,点击NEXT继续; -
设置登录名及密码,密码要符合强度要求,也可系统随机生成。点击
Next,进入下一步; -
点击
FINISH按钮完成该用户的创建; -
循环创建所有用户。
为权限组添加相应的用户
-
在Sam管理系统,在左侧点击
Groups按钮,打开组管理页面,点击右下角+按钮,打开Register a Group对话框,输入Group的名字,建议与Spoolgen Web API管理界面中添加的Access Groups名字保持一致,以便更好的进行管理,点击Next,进入下一步; -
点击
FINISH按钮完成Group的创建,进入到当前Group的详情页; -
在该Group的详情页,找到
Smart API Access部分,点击右侧的三个点,点击Add Smart API按钮,打开Add Smart API Access弹窗,点击输入框,从下拉选项中选择Intergraph Spoolgen Web Api,点击NEXT,进入下一步; -
修改
role这一行的Value为Writer,使该组员用户具有读写权; -
在上方输入框点击,从下拉选项中选择
accessGroup,并点击ADD按钮,在下方新增一行; -
在新增的
accessGroup行,修改Value值,点击SAVE按钮保存,点击NEXT,进入下一步;此处的Value值,必须和Spoolgen Web API管理界面中添加的Access Groups名字保持一致,这是两个管理系统的关联所在。
-
保持Enable勾选状态,点击
NEXT,进入下一步; -
点击
FINISH按钮完成Group详情页关于Smart API Access的设置; -
在该Group的详情页,找到
Manage Users部分,点击右侧的三个点,点击Add User按钮,打开Add a User to XXX弹窗,点击输入框,从下拉选项中选择某一个归属于该Group的用户,点击NEXT,进入下一步; -
点击
FINISH按钮完成m某位用户的添加,继续添加下一个用户,直至将所有归属于该Group的用户全部添加完成; -
最终的Group详情页如下图所示,添加了两个User;
-
使用同样的方法,创建所有的Group,并设置相应的Smart API Access及Users。
验证
Spoolgen Web API 管理界面
-
使用超级管理员
sysadmin登录Spoolgen Web API 管理界面,可以看到所有项目的情况: -
使用
User1或User2登录Spoolgen Web API 管理界面,只能看到有权限的DBProject1和DBProject3的情况: -
使用
User3登录Spoolgen Web API 管理界面,只能看到有权限的DBProject2和DBProject4的情况: -
测试登录DBProject项目,User1和User2都可以成功登录
DBProject1和DBProject3项目,而无法成功登录DBProject2和DBProject4项目,而超级管理员可以登录所有项目。下图为User1登录DBProject2失败的弹窗信息。
这样,我们就可以把DBProject1和DBProject3项目对应的Construction1这个Directory,以及User1和User2的账号密码发给施工单位1来使用,把DBProject2和DBProject4项目对应的Construction2这个Directory,以及User3的账号密码发给施工单位2来使用,他们不能看到别的施工单位的设计图纸,只能在自己项目中进行设计及输出图表。




































