Discuzxsso
discuz and mediawiki sso
Install / Use
/learn @savokiss/DiscuzxssoREADME
discuz与mediawiki用户同步插件
[TOC]
简介
- 本程序用于Ucenter和mediawiki的用户同步登录
- 本程序是mediawiki的extension,基于mediawiki 1.24测试
- 本程序不仅仅是用户数据的同步,还实现了用户的同步登录和登出
- 新增用户权限的设计
- 本程序修改了官方扩展的代码,升级了uc_client为discuz3.2使用的1.6.0
- 本扩展mediawiki官方文档:mediawiki官方文档
配置说明
-
复制DiscuzXSSO文件夹到extensions目录
-
在
LocalSetting中最后添加如下代码:$wgGroupPermissions['*']['createaccount'] = false;//禁止注册 require_once "$IP/extensions/DiscuzXSSO/DiscuzXSSO.php"; $wgAuth = new Auth_UCenter(); // 下面这个函数在Setup.php调用,在mediawiki渲染页面之前插入我们的uc_login_hook $wgExtensionFunctions[] = 'uc_login_hook'; -
在
LocalSetting.php添加权限控制:# The following permissions were set based on your choice in the installer $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['createpage'] = false; $wgGroupPermissions['*']['createtalk'] = false; $wgGroupPermissions['*']['writeapi'] = false; # 取消user组的编辑权限 $wgGroupPermissions['user']['edit'] = false; # 添加可编辑用户组 $wgGroupPermissions['editor']['edit'] = true; $wgGroupPermissions['sysop']['edit'] = true; -
在Ucenter中添加应用,具体参考mediawiki官方文档
-
Ucenter数据库配置和cookie配置需修改
config.inc.php,可参考discuz的config_global.php -
权限配置,修改
config.inc.php中定义的GP_常量用于用户组归类 -
修改wiki目录/includes/specials/SpecialUserLogin.php,在
attemptAutoCreate方法最后一行的return self::SUCCESS;之前添加如下代码:echo "<script>location.reload();</script>";//解决新用户第一次登录wiki白板问题
用户权限特别说明
- 2015.1.20新增用户权限
- discuz的自动用户官方wiki会自动添加
用户(user),自动确认用户(autoconfirmed)用户组,所以通过取消用户(user)的编辑权限,添加编辑者(editor)的编辑权限来控制 - 新增editor用户组,如需修改中文用户组名(wiki1.24版本):
- 在languages/i18n/zh-hans.json line 1059添加:
"group-editor":"编辑者", - 在line 1073添加
"grouppage-editor":"{{ns:project}}:编辑者",
- 在languages/i18n/zh-hans.json line 1059添加:
- 按上述配置的程序的权限:见wiki
特殊页面-用户组权限 - discuz的用户对应到wiki分为三大类,见下表
| discuz | wiki | | --------------------------------------|:-------------:| | 管理组(admin) | 管理员 | | 会员,高级会员,自定义组(normal) | 编辑者 | | 限制会员(limited) | 限制用户 |
