GithubHelp home page GithubHelp logo

discuzxsso's Introduction

discuz与mediawiki用户同步插件

[TOC]

简介

  • 本程序用于Ucenter和mediawiki的用户同步登录
  • 本程序是mediawiki的extension,基于mediawiki 1.24测试
  • 本程序不仅仅是用户数据的同步,还实现了用户的同步登录和登出
  • 新增用户权限的设计
  • 本程序修改了官方扩展的代码,升级了uc_client为discuz3.2使用的1.6.0
  • 本扩展mediawiki官方文档:mediawiki官方文档

配置说明

  1. 复制DiscuzXSSO文件夹到extensions目录

  2. 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';
    
  3. 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;
    
  4. 在Ucenter中添加应用,具体参考mediawiki官方文档

  5. Ucenter数据库配置和cookie配置需修改config.inc.php,可参考discuz的config_global.php

  6. 权限配置,修改config.inc.php中定义的GP_常量用于用户组归类

  7. 修改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版本):
    1. 在languages/i18n/zh-hans.json line 1059添加:"group-editor":"编辑者",
    2. 在line 1073添加"grouppage-editor":"{{ns:project}}:编辑者",
  • 按上述配置的程序的权限:见wiki特殊页面-用户组权限
  • discuz的用户对应到wiki分为三大类,见下表
discuz wiki
管理组(admin) 管理员
会员,高级会员,自定义组(normal) 编辑者
限制会员(limited) 限制用户

discuzxsso's People

Contributors

savokiss avatar

Watchers

Hao.Dongfang avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.