请选择 进入手机版 | 继续访问电脑版

REDCap club

查看: 98|回复: 6

给REDCap增加管理员设置用户密码功能

[复制链接]

4

主题

18

帖子

121

积分

注册会员

Rank: 2

积分
121
发表于 2021-12-31 00:36:59 | 显示全部楼层 |阅读模式
每次新建用户都要email地址来获得设置密码的邮件,对于研究使用REDCap的老师非常不便。
这两天做了些开发,增加了这个小功能,需要的老师可与我联系。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

19

主题

46

帖子

328

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
328
发表于 2022-1-8 19:51:28 | 显示全部楼层
很实用的功能!
回复

使用道具 举报

19

主题

46

帖子

328

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
328
发表于 2022-1-8 19:52:03 | 显示全部楼层
是否可以开源分享呢?
回复

使用道具 举报

4

主题

18

帖子

121

积分

注册会员

Rank: 2

积分
121
 楼主| 发表于 2022-1-9 12:19:53 | 显示全部楼层
CJLIU 发表于 2022-1-8 19:52
是否可以开源分享呢?

可以,要改以下2个php文件的4处:
create_user.php
RedCapDB.php
稍后我发源代码


回复

使用道具 举报

4

主题

18

帖子

121

积分

注册会员

Rank: 2

积分
121
 楼主| 发表于 2022-1-9 12:29:15 | 显示全部楼层
create_user.php
第44行($_POST['user_lastname']....的下面一行)增加:
        $_POST['user_password'] = trim(strip_tags(label_decode($_POST['user_password'])));

第70行($display_on_email_users....的下面一行)增加:
        $pass = '';
                if ($_POST['user_password'] != '') {
            $pass = $_POST['user_password'];
        }
        else {
            if (empty($ui_id)) {
                $pass = generateRandomHash(8);
            }
        }

第236行(</tr>....的下面一行)增加:
    <tr>
        <td><?php echo $lang['global_32'].$lang['colon'] ?> </td>
        <td>
            <input type='password' class='x-form-text x-form-field' id='user_password' name='user_password' maxlength='255'
                   onkeydown='if(event.keyCode == 13) return false;'>
        </td>
    </tr>

RedCapDB.php
第1241行('ui_id=' . intval($ui_id));的下面一行)增加:
                if ($pass != '') {
                    $password_salt = Authentication::generatePasswordSalt();
                    $hashed_password = Authentication::hashPassword($pass, $password_salt);
                    if ($isAaf === 0) {
                        $sql[] = $this->save('redcap_auth', array('username' => $username, 'password' => $hashed_password,
                            'password_salt' => $password_salt, 'temp_pwd' => 1));
                        $sql[] = $this->save('redcap_auth_history', array('username' => $username, 'password' => $hashed_password,
                            'timestamp' => NOW));
                    }
                }


以上就是基于12.0.7官方版本的修改,完整的源码因为担心会违反官方的版权,就不公开在这里啦,需要的老师可以单独交流。
回复

使用道具 举报

19

主题

46

帖子

328

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
328
发表于 2022-1-9 15:09:24 | 显示全部楼层
谢谢您的分享!赞!
回复

使用道具 举报

19

主题

46

帖子

328

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
328
发表于 2022-1-9 15:12:24 | 显示全部楼层
我们对REDCap也做了写定制,官方鼓励定制,我们都是保留了官方的版权申明。
比如,导出PDF文件页脚上,加了华山医院的logo,以增强文件的正式性,尤其是知情同意书之类。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|沪ICP备2020038279号-3|REDCap CLUB

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表