Como evitar que o MediaWiki remova as assinaturas não padrão?

1

Recentemente, atualizamos o MediaWiki de 1.13.2 para 1.15.4. Um dos efeitos colaterais é que as assinaturas das pessoas são excluídas automaticamente. Ou seja, uma assinatura adicionada em MINHAS PREFERÊNCIAS é alterada para corresponder ao campo Nome Real após alguns minutos.

Nós definimos $ wgCleanSignatures = false em LocalSettings.php, mas isso não muda o comportamento.

Alguém sabe como evitar isso?

Atualização: pode ajudar a adicionar mais alguns detalhes.

Em MINHAS PREFERÊNCIAS eu escrevo:

[[User:MyName|<span style="color:lightseagreen">My Name</span>]] ([[User talk:MyName|<span style="color:lightseagreen">Talk</span>]])

Minha assinatura em uma página de discussão é, portanto:

--[[User:MyName|<span style="color:lightseagreen">My Name</span>]] ([[User talk:MyName|<span style="color:lightseagreen">Talk</span>]]) <time date stamp>

Após uma hora, a preferência é revertida para:

My Name

E minha assinatura se torna:

--My Name <time date stamp>
    
por Wikis 14.01.2011 / 10:18

1 resposta

1

Isso deve ser um problema com o uso de autenticação externa. Quando um usuário efetua login atualiza seus atributos, e acredito que durante esse processo durante a atualização ele também está atualizando a assinatura do usuário, modifique seu código conforme necessário.

Você pode ver abaixo como ela é atualizada.

Além disso, verifique aqui se há alguma conversa sobre se você está usando o login automático, parece que a assinatura é atualizada com o nome de usuário, você precisará modificar o código.

link

Em LdapAuthentication.php

/**
 * When a user logs in, update user with information from LDAP.
 *
 * @param User $user
 * @access public
 * TODO: fix the setExternalID stuff
 */
function updateUser( &$user ) {
    global $wgLDAPRetrievePrefs;
    global $wgLDAPUseLDAPGroups;
    global $wgLDAPUniqueBlockLogin, $wgLDAPUniqueRenameUser;

    $this->printDebug( "Entering updateUser", NONSENSITIVE );

    if ($this->authFailed) {
        $this->printDebug( "User didn't successfully authenticate, exiting.", NONSENSITIVE );
        return;
    }

    $saveSettings = false;

    //If we aren't pulling preferences, we don't want to accidentally
    //overwrite anything.
    if ( isset( $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] ) && $wgLDAPRetrievePrefs[$_SESSION['wsDomain']] ) {
        $this->printDebug( "Setting user preferences.", NONSENSITIVE );

        if ( '' != $this->lang ) {
            $user->setOption( 'language', $this->lang );
        }
        if ( '' != $this->nickname ) {
            $user->setOption( 'nickname', $this->nickname );
        }
        if ( '' != $this->realname ) {
            $user->setRealName( $this->realname );
        }
        if ( '' != $this->email ) {
            $user->setEmail( $this->email );
        }
        if ( ( isset( $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] ) && $wgLDAPUniqueBlockLogin[$_SESSION['wsDomain']] )
            || ( isset( $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) && $wgLDAPUniqueRenameUser[$_SESSION['wsDomain']] ) ) {

            if ( '' != $this->externalid ) {
                $user->setExternalID( $this->externalid );
            }
        }

        $saveSettings = true;
    }

    if ( isset( $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) && $wgLDAPUseLDAPGroups[$_SESSION['wsDomain']] ) {
        $this->printDebug( "Setting user groups.", NONSENSITIVE );
        $this->setGroups( $user );

        $saveSettings = true;
    }

    if ( $saveSettings ) {
        $this->printDebug( "Saving user settings.", NONSENSITIVE );
        $user->saveSettings();
    }
}
    
por 16.03.2011 / 14:26