Gallery:设计资料:完整性检查
来自站长百科
该文档列有需在官方完整性模块中实现的完整性检查。
要求[ ]
- 检查数据库的完整性
- 检查DB与存储文件夹(文件系统)的完整性
- 通过站点管理中的UI暴露
- 如被升至某一导致站点管理无法被访问的级别时,则通过lib/support/暴露
检查[ ]
为了进行检查,禁用磁盘缓存
检查实体[ ]
Foreach entity describeEntity实体并检查各表格都含有此实体的一行(如通过载入实体)
Foreach entity table 确认在实体表中有对应的入口
检查引用(未公开的外键)[ ]
- ChildEntity.parentId -> Entity.id - Derivative.derivativeSourceId - Entity.linkId -> Entity.id && entityType必须相同 - Comment.commenterId -> User.id - AlbumItem.theme -> PluginMap.pluginId && active
同样对于映射.
- UserGroupMap.userId -> User.id - UserGroupMap.groupId -> Group.id - AccessMap.userOrGroupId -> Entity.id - AccessSubscriberMap.itemId -> Item.id - AccessSUbscriberMap.accessListId -> AccessMap.accessListId - CustomfieldMap.itemId -> Item.id - PluginParameterMap.itemId -> Entity.id - DerivativePrefsMap.itemId -> Item.id - DescendentCountsMap.userId -> User.id - DescendentCountsMap.itemId -> Item.id - ExternalIdMap.entityId -> Entity.id - ExternalIdMap.entityType -> describeEntity hit (no miss) - G1MigrateMap.itemId -> Item.id - 等
检查数据库vs文件系统[ ]
Foreach FilesystemEntity as entity file_exists entity.fetchPath() Foreach g2data/albums/ as logicPath 确认对于logicPath 存在一个对应的FilesystemEntity
检查文件系统权限[ ]
Foreach g2data/ as file is_writeable file
更多检查[ ]
- id.everybodyGroup -> Group.id
- id.anonymousUser -> User.id && user仅在所有人用户组内
- id.adminGroup -> Group.id && groupType == GROUP_SITE_ADMINS
- 1个或多个站点管理员的存在
- 检查根相册id和其他核心插件参量
- 确认管理员可以访问所有项目,并具有全部权限
- factory -> 确认厂入口
- 工具包操作,文章过滤器(缺失文件,缺失操作)