之前我们文章介绍了如何通过web实现群组维护,添加、删除人员,然后对添加的人员做判断,因为我们都知道domino是一个比较开发的应用程序,通过console对群组内的人员做变更时,可以手动任意格式的信息,如果添加的人员多的话,肯定会将人员信息批量复制粘贴的,这样等用户给群组发送邮件的时候,如果群组内的用户不存在domino目录下,用户会收到退信,所以添加用户是否在domino列表下的用户相当重要。今天我们主要介绍,在原有的基础之上添加log记录,我们需要记录管理员对群组的操作记录,比如管理员在某个时间段对某个组进行维护过,添加、删除过用户等信息做记录,记录见下:

我们为了方便将原有的程序复制过来,然后复制到新建的数据库下,然后修改成ntf模板文件进行替换设计,这样比较方便,方便日后维护;当然也可以不用这么麻烦,我们直接可以在原有的数据库上进行功能添加。在原有的数据库上添加显示群组维护记录。添加相应的表单即可。

我们今天两种方法都实现一下。先试试第一种方法,在原有的数据库上进行数据添加。在真实环境下我们操作前必须先要备份原有的数据库,修改错误还能还原。

我们默认的功能,只有编辑功能

我们先通过desinger打开群组维护数据库。进行编辑。我们原有的库只有三个代理程序,我们需要添加日志相关的代理程序。

我们需要添加log相关的代理程序。

名称为:显示群组维护日志,别名为:agtGetConfigLog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Option Public
Option Declare
Sub Initialize
On Error GoTo err_line
Dim session As New NotesSession
Dim dbCur As NotesDatabase
Dim vwLog As NotesView
Dim dcLog As NotesDocumentCollection
Dim docLog As NotesDocument
Dim note As NotesDocument
Dim logritem As NotesRichTextItem
Dim gpname As String
Dim loginfo As String
Set note = session.Documentcontext
gpname = note.strGpName(0)
If gpname <> "" Then
Set dbCur = session.Currentdatabase
Set vwLog = dbCur.Getview("vwGpConfigLog")
If Not vwLog Is Nothing Then
Set dcLog = vwLog.Getalldocumentsbykey(gpname,True)
Set docLog = dcLog.Getlastdocument()
Set logritem = New NotesRichTextItem(note,"rtfLogInfo")
While Not docLog Is Nothing
loginfo = |{"optUser":"|+docLog.strUserName(0)+|",|
loginfo = loginfo + |"OptTime":"|+docLog.strDateTime(0)+|",|
loginfo = loginfo + |"AddMembers":"|+docLog.rtfGpAdd+|",|
loginfo = loginfo + |"DelMembers":"|+docLog.rtfGpDel+|",|
loginfo = loginfo + |"OthMembers":"|+docLog.rtfOth+|"}|
Call logritem.Appendtext(loginfo+"@log@")
Set docLog = dcLog.Getprevdocument(docLog)
Wend
End If
End If
Exit Sub
err_line:
MsgBox session.Currentagent.name+" error : "+Error+" at line : "+Cstr(Erl)
End Sub

代理程序创建完后,我们需要创建视图:

名称为:群组维护日志、别名为:vwgppconfiglog

视图设计

维护人

维护时间

接下来就是创建表单了。

我们需要创建两个表单:群组维护日志、显示群组维护记录

首先是群组维护日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<table>
<tr>
<td>群组名</td>
<td></td>
</tr>
<tr>
<td>维护人</td>
<td></td>
</tr>
<tr>
<td>维护时间</td>
<td></td>
</tr>
<tr>
<td>添加成员</td>
<td></td>
</tr>
<tr>
<td>删除成员</td>
<td></td>
</tr>
<tr>
<td>保存时被忽略成员</td>
<td></td>
</tr>
</table>

接下来是

显示群组维护记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<div style="display:none">
数据库路径:
日志信息:
</div>
<style type="text/css">
table {
;
border:0px;
margin:0px;
border-collapse:collapse;
border-spacing:0px;
}
table td {
padding:0px;
height:25px;
border:1px solid #c0c0c0;
}
.tbl_head {
text-align:center;
height:40px;
font-weight:bold;
font-size:22px;
}
.td_head {
text-align:center;
height:27px;
font-weight:bold;
font-size:15px;
white-space:nowrap;
padding-left:5px;
padding-right:5px;
}
.td_content {
height:27px;
font-size:15px;
padding-left:5px;
padding-right:5px;
white-space:nowrap;
}
.div_remark {
font-size:15px;
color:red;
margin-top:10px;
margin-bottom:10px;
}
.td_showMore {
text-align:center;
cursor:pointer;
font-size:12px;
height:20px;
}
</style>
<div class="div_remark">
说明:<br>
&nbsp;&nbsp;&nbsp;&nbsp;1.[被忽略的成员]表示编辑群组并保存时因在系统中不存在而未被添加的成员<br>
&nbsp;&nbsp;&nbsp;&nbsp;2.记录中[添加成员][删除成员][被忽略的成员]均为空时,表示此次操作只是保存了群组文档,并未进行其他操作<br>
&nbsp;&nbsp;&nbsp;&nbsp;3.维护记录每次只加载<span id="loadMax">100</span>行,如需查看更多记录可点击表格最后一行的“显示更多…”
</div>
<table id="GpConfigLog">
<tr>
<td colspan="5" class="tbl_head"> 维护记录</td>
</tr>
<tr>
<td class="td_head" ;10%">维护人</td>
<td class="td_head" ;13%">维护时间</td>
<td class="td_head" ;30%">添加成员</td>
<td class="td_head" ;30%">删除成员</td>
<td class="td_head" ;17%">被忽略的成员</td>
</tr>
<tbody id="showLog" style="display:none">
<tr><td colspan="5"></td></tr>
</tbody>
<tr><td colspan="5" style="height:0px;border-bottom:0px;"></td></tr>
</table>

我们保存后,然后重启服务,我们发现多了一个维护日志。

验证:

验证查询组内成员

接下来我们测试一下维护日志的功能。我们分别添加有效用户、添加无效用户、删除用户看看是否能记录用户的操作记录

添加一个有效的用户(真是存在的)

然后保存成功

接下来我们是添加一个无效的用户(domino目录下不存的用户)

保存忽略不存在的用户

接下来我们测试删除用户

保存

接下来我们查看群组的维护日志

我们发现删除人员的log有问题,我们确认问题是保存代理有问题,需要修改

打开代理程序---保存群组成员;可根据以下提示修改

删除:Dim delMVar As Variant

将delMVar = split(DelM,”;”)修改后logDeM=split(DelM,”;”)

删除以下字段

删除logDelM=split(“”)

修改完成后,我们保存代理后,然后通过添加用户及删除用户查看log记录

我们发现可以记录用户信息了。如果记录多了的话,需要通过notes console打开该数据库进行维护:

打开可对这些记录进行维护---维护等操作。

注:为了记录更加真实,我们需要设置acl进行权限控制,禁止anonymous访问

本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1418448,如需转载请自行联系原作者

Domino9下web群组维护添加log维护记录相关推荐

  1. 深度学习框架下群组行为识别算法综述

    源自:电子学报       作者:邓海刚  王传旭  李成伟  林晓萌 摘 要 群组行为识别目前是计算机视觉领域的一个研究热点,在智能安防监控.社会角色理解和体育运动视频分析等方面具有广泛的应用价值. ...

  2. linux添加有效群组,Linux中的有效群组和初始群组

    在Linux中,每个账号都可以加入多个群组,那用户登录后默认的用的是哪个群组呢?关于这个问题就要说说有效群组和初始群组了. 在用户账号信息文件/etc/passwd中,那个由冒号分割的7个栏目中,第四 ...

  3. 腾讯云im:用户端来实现群组消息的功能

    前言: 腾讯云im如果放在服务端来实现是非常便捷的,但是也受腾讯im的并发等限制,这里提供  用户端,也就是前端  来实现群组消息的相关功能. 实现效果: 实现具体功能需求: 1.群组中有主播.用户. ...

  4. Zabbix和agent端部署、图示Zabbix Web端搭建以及添加设备的4种方法、Zabbix API

    Zabbix zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员 ...

  5. Linux用户与群组管理

    用户账户与群组概念 Linux操作系统是多用户多任务的操作系统,系统依据账户来区分属于每个用户的文件.进程,任务,并给每个用户提供特定的工作环境(例如,用户的工作目录.shell版本以及图形化的环境配 ...

  6. linux存储群组名称的文件是,群组管理(分组,群组密码,身份切换,常见问题)- 系统管理 -Deepin深度系统用户手册...

    群组介绍 Linux中为了使用户共享文件或者其他资源方便,引入了群组的功能: Linux中每一个用户属于一个群组(group),而每一个群组(group)都有一个group标示符,即GID. 所有群组 ...

  7. 置放群组(Placement groups)

    关注公众号:AWS爱好者(iloveaws) 文 | 沉默恶魔(禁止转载,转载请先经过作者同意) 网站:www.iloveaws.cn Hello大家好,欢迎来到<AWS解决方案架构师认证 Pr ...

  8. Linux 学习笔记 文件、目录操作与用户群组权限

    一.命令行提示符 1.1 命令行基础 bearpi:当前用户名,在@前是用户名 ubuntu:用户所在的域名,在@后面,这是我自定义的,默认应该是主机名 ~ 波浪线为目前所在目录,~代表家目录(hom ...

  9. Linux账号与群组系统介绍

    一.使用者辨别码:UID与GID 虽然我们使用账号(一个字符串)登入Linux主机,但是Linux主机并不会直接识别我们的账号,而是识别ID(一组数字).账号仅仅是为了让我们方便记忆,账号与对应的ID ...

最新文章

  1. mac搭建ios自动化环境之WebDriverAgent配置
  2. CLion:JetBrains 正式推出的 C/C++ IDE
  3. (转)探究 TCP 一次数据包最大负载,上限真的是 65495 byte 吗
  4. 送你了,思科设备基础配置命令大全(一),赶紧收藏......
  5. vs设置语言后引用dll的一个错误
  6. 1249. 移除无效的括号
  7. Codeforces Round #620 (Div. 2) F2. Animal Observation (hard version) dp + 线段树
  8. WordPress 首页显示摘要
  9. 对发表论文的深层次思考
  10. Python机器学习:贝叶斯文本分类器
  11. activemq之Windows安装
  12. WebService学习总结(6)——WebService常用接口
  13. [HTML+CSS]电商网站模板
  14. 双活数据中心概念及优缺点介绍
  15. 大话——从细分市场观商业模式
  16. 全国高中生计算机联赛,全国中学生五大学科竞赛
  17. 倒数三天 | Study Jam 即将截止,你完成了吗?
  18. linux daemon安装教程,Linux daemontools安装及使用
  19. oracle 金额大写转换
  20. Keras Sequential顺序模型

热门文章

  1. android系统中如何通过程序打开某个AccessibilityService
  2. cf519D . A and B and Interesting Substrings 数据结构map
  3. Java的重写equals但不重写hashCode方法的影响
  4. hdu 2553 N皇后问题
  5. 数据结构上机实践第三周项目2 - 建设“顺序表”算法库
  6. synchronousqueue场景_【JUC】JDK1.8源码分析之SynchronousQueue(九)
  7. python字典最大长度_支持key过期失效和限制字典大小的开源项目 [python expire max length]...
  8. treemap底层结构_HashMap面试必问的数据结构相关知识总结
  9. python数字组合算法_python猜数字游戏快速求解解决方案
  10. html输入格式限制,jQuery输入框限制输入内容格式插件