Example #1
0
function cvs_change_password($cvs_user, $new_pass, $cvs_project)
{
    $all_cvs_users = cvs_read_passwd($cvs_project);
    $cvs_fields = $all_cvs_users[$cvs_user];
    if (!is_null($cvs_fields)) {
        $cvs_fields[0] = $new_pass;
        $all_cvs_users[$cvs_user] = $cvs_fields;
        cvs_write_file($all_cvs_users, $cvs_project);
        cvs_log(1, "Updated password for {$cvs_user}");
    } else {
        cvs_log(3, "No such user- {$cvs_user}");
    }
}
Example #2
0
function update_cvs_repositories()
{
    global $cvsdir_prefix;
    global $err;
    $res = db_query("select groups.group_id,groups.unix_group_name,groups.enable_anonscm,groups.enable_pserver" . " FROM groups, plugins, group_plugin" . " WHERE groups.status != 'P' " . " AND groups.group_id=group_plugin.group_id " . " AND group_plugin.plugin_id=plugins.plugin_id " . " AND plugins.plugin_name='scmcvs'");
    for ($i = 0; $i < db_numrows($res); $i++) {
        /*
        	Simply call cvscreate.sh
        */
        $project =& group_get_object(db_result($res, $i, 'group_id'));
        // get the group object for the current group
        if (!$project || !is_object($project)) {
            echo "Error Getting Group." . " Id : " . db_result($res, $i, 'group_id') . " , Name : " . db_result($res, $i, 'unix_group_name');
            break;
            // continue to the next project
        }
        $repositoryPath = $cvsdir_prefix . "/" . $project->getUnixName();
        if (is_dir($repositoryPath)) {
            $writersContent = '';
            $readersContent = '';
            $passwdContent = '';
            if ($project->enableAnonSCM()) {
                $repositoryMode = 02775;
                if ($project->enablePserver()) {
                    $readersContent = 'anonymous';
                    $passwdContent = 'anonymous:8Z8wlZezt48mY';
                }
            } else {
                $repositoryMode = 02770;
            }
            chmod($repositoryPath, $repositoryMode);
            cvs_write_file($repositoryPath . '/CVSROOT/writers', $writersContent, 0);
            cvs_write_file($repositoryPath . '/CVSROOT/readers', $readersContent, 0);
            cvs_write_file($repositoryPath . '/CVSROOT/passwd', $passwdContent, 0);
            if ($project->usesPlugin('cvssyncmail')) {
                add_sync_mail($project->getUnixName());
            }
            if ($project->usesPlugin('cvstracker')) {
                add_cvstracker($project->getUnixName());
            }
            add_acl_check($project->getUnixName());
        } elseif (is_file($repositoryPath)) {
            $err .= $repositoryPath . ' already exists as a file';
        } else {
            // Creates the repository
            // first, make sure the UNIX group exists
            $data = exec('getent group ' . $project->getUnixName());
            if (empty($data)) {
                // group doesn't exist -- cronjob that creates users and groups hasn't run yet
                continue;
            }
            $enableAnonSCM = $project->enableAnonSCM() ? 1 : 0;
            $enablePserver = $project->enablePserver() ? 1 : 0;
            system(dirname(__FILE__) . '/cvscreate.sh ' . $project->getUnixName() . ' ' . $project->getUnixName() . ' ' . $enableAnonSCM . ' ' . $enablePserver);
            if ($project->usesPlugin('cvssyncmail')) {
                add_sync_mail($project->getUnixName());
            }
            if ($project->usesPlugin('cvstracker')) {
                add_cvstracker($project->getUnixName());
            }
            add_acl_check($project->getUnixName());
        }
    }
    //
    // Move CVS trees for deleted groups
    //
    $res8 = db_query("SELECT unix_group_name FROM deleted_groups WHERE isdeleted = 0;");
    $err .= db_error();
    $rows = db_numrows($res8);
    for ($k = 0; $k < $rows; $k++) {
        $deleted_group_name = db_result($res8, $k, 'unix_group_name');
        if (!is_dir($cvsdir_prefix . "/.deleted")) {
            system("mkdir " . $cvsdir_prefix . "/.deleted");
        }
        system("mv -f {$cvsdir_prefix}/{$deleted_group_name}/ {$cvsdir_prefix}/.deleted/");
        system("chown -R root:root {$cvsdir_prefix}/.deleted/{$deleted_group_name}");
        system("chmod -R o-rwx {$cvsdir_prefix}/.deleted/{$deleted_group_name}");
        $res9 = db_query("UPDATE deleted_groups set isdeleted = 1 WHERE unix_group_name = '{$deleted_group_name}';");
        $err .= db_error();
    }
}