MOSS字段编辑权限控制方案,实现了控制列表项,或文档属性的字段级权限控制,本篇讲述如何开发配置页面以及如何将配置信息持久化。

我们先看一下配置界面的样子:
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化

    wss(moss)的所有配置页面都放到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS目录
或子目录中,我们将字段权限配置页面(FieldEditControl.aspx)放到Layouts的子目录CodeArt中。
    配置界面的核心逻辑开发成一个webcontrol(FieldRightSettingPart),将这个webpart直接嵌入到管理页面,管理页面的代码如下:
>

wss开发中经常会碰到配置信息存储的问题,如果是webpart,我们可以用webpart的属性来存储,其他情况下,我们可以考虑用数据库或List来存储。
这里我选择用文档库来存储,将配置类序列化成xml存储到一个文档库中。考虑到以后还会碰到这类配置信息存储的情况,把这个功能开发成一个通用的类CongfigManager:(为了以后“可能的”替换数据存储方式,用了工程模式)
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
    }
 
    }

这个CongfigManager实现了对一个配置类的保存,获取和删除。

下面考虑配置类如何抽象化
用以下类来表示每个字段的配置信息:
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化    [Serializable]
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化    
public class FieldEditSetting
    }
用一个集合类来表示整个列表的所有字段的配置信息(本来想用字典的,单字典类型不能序列化,这能放弃):
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化  [Serializable]
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化    
public class ListFieldEditSetting : List<FieldEditSetting> 
    }

以上的基础类建好了,可以开始FieldRightSettingPart的开发了:
    }

FieldRightSettingPart会在内部生成一个布局表格和很多的子控件,为了便于操作这些子 控件,
声明了三个字典类型的变量,来放置生成的控件,字典key为字段名,值为对应的编辑控件:
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化 private Dictionary<string, CheckBox> _AllUserCanEditControls = new Dictionary<string, CheckBox>();
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
private Dictionary<string, CheckBox> _CreatorCanEditControls = new Dictionary<string, CheckBox>();
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
private Dictionary<string, Microsoft.SharePoint.WebControls.PeopleEditor> _SpecialAccountsControls =
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化        
new Dictionary<string, Microsoft.SharePoint.WebControls.PeopleEditor>();
在CreateChildControls,遍历列表的字段,生成设置界面,同时若已经存在配置信息,则按照配置信息初始化控件初始值:
        }

按钮提交时,遍历编辑子控件,组装配置类,调用ConfigManage类保存数据。:
        }

game over!

附1:存放配置信息的文档库:
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化

附2:配置信息序列化后的xml格式:
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化<?xml version="1.0" encoding="utf-8"?>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<ArrayOfFieldEditSetting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<FieldEditSetting>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<FieldName>fileleafref</FieldName>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<CreatorCanEdit>false</CreatorCanEdit>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<AllUserCanEdit>false</AllUserCanEdit>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<SpecialAccounts /></FieldEditSetting>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<FieldEditSetting>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<FieldName>title</FieldName>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<CreatorCanEdit>false</CreatorCanEdit>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<AllUserCanEdit>false</AllUserCanEdit>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
<SpecialAccounts /></FieldEditSetting>
MOSS字段编辑权限控制方案的实现(1)-管理页面的开发和配置信息的持久化
</ArrayOfFieldEditSetting>


本系列的所有文章:
MOSS字段编辑权限控制方案(4)-打包解决方案



相关文章:

  • 2022-12-23
  • 2021-11-20
  • 2022-02-13
  • 2022-12-23
  • 2021-06-16
  • 2021-11-09
猜你喜欢
  • 2021-09-06
  • 2021-11-11
  • 2021-10-19
  • 2021-08-01
  • 2022-01-13
  • 2021-09-30
  • 2022-12-23
相关资源
相似解决方案