I had not looked into the issue of why SVN sees user IDs as upper case very 
much. I suspect that at least some of the story is that some people type in 
their user name in all upper case. However, that is not the whole story. I 
never enter my user name in all upper case. I only use 'ian'. A brief look 
around indicated that this was going to be hard for me to find. My user ID 
seems mostly to now be lower case again, unlike when I first reported this 
issue, though a number of other users largely have upper case user IDs 
showing in Subversion. However, I just looked at a small repository we have 
and several recent check ins show me as IAN. I have not logged into the SVN 
client on my machine for a long time and my cached credentials have not 
changes from ian@<domain>. 

The reason I ignored this issue is that our Windows authorization is case 
insensitive. So, it does not matter a lot. And I suspect that the ultimate 
culprit on the user names changing is something in Windows. over which I 
have no control even if I could isolate it. That is a lot of why we have 
ignore_auth_case set. We have no good way to make users log in with case 
sensitive user name. Windows will not enforce it, and worse yet, 
sometimes Windows decides it would be a good idea to change the case 
provided (I do not know when it does this, but I am quite certain that it 
does). So, even if I could work out what is going on exactly, I would have 
a hard time getting users to log in consistently whether I like it or not 
and I doubt very much I could do anything about Windows. I could coerce the 
user names to lower case somewhere in Apache, but I looked at that when I 
first encountered the issue and I do not understand rewrites well enough to 
trust myself to mess with user IDs reliably.

I did just try looking at the revision logs on our small repository using 
svn log and what Trac shows in its timeline matches the user name case that 
svn log shows. So, Trac is getting correct user names as seen 
by Subversion. 

To me, it seems that whether you log into Trac through your Subversion user 
name, you connect directly, or log in some other way, the authorization 
should follow the same rules, and preferably go through the same code to 
reach that goal. Of course, as you say, this is a Trac dev decision. 

We already live with all user names showing up as all lower case in Trac. 
And, personally, I prefer the consistent user name case given that we have 
no easy option to get case sensitive user names. It would cause us no 
trouble if the same occurred under Subversion logs since our Subversion 
authorization is also case insensitive. But, I can easily imagine that 
someone else could be very unhappy with a timeline report that did not 
match what svn log reports. But, it also seems likely to me that such a 
person would never set  ignore_auth_case true. 

I would personally prefer that the Subversion logs and Repository browser 
show the actual user name as seen in Subverison and that that the Trac 
authorizations use all lower case in all places. That lets me see what 
Subversion sees and it also means that Trac has consistent user names. Trac 
does not look at ignore_auth_case when deciding who made a change, at least 
as far as I can tell, so it sees a change by IAN as different from a change 
by ian. If all log ons always used ignore_auth_case rules, then that could 
not happen.


On Tuesday, March 18, 2014 4:12:29 PM UTC-8, RjOllos wrote:

>
> My previous comment was based on my understanding that you don't know why 
> the Subversion username is appearing in all uppercase characters since you 
> have authenticated using a username with lowercase characters. Presumably 
> that is a Subversion issue, as you've suggested. It would be nice to know 
> what the command line client displays for the changeset metadata though.
>
> You are also wondering why the [trac] ignore_auth_case parameter is not 
> being respected in CommitTicketUpdater. 
>
> The effect of the ignore_auth_case parameter is to convert a username to 
> lowercase when a Request object is constructed. Usually `PermissionCache` 
> is constructed using `req.authname` for the `username` parameter: 
> `PermissionCache(self.env, req.authname)`, and that PermissionCache is used 
> to grant/deny authorization. In `CommitTicketUpdater` we aren't working 
> with a `Request` object, but to get the same effect we can convert the 
> author parameter to lowercase here:
>
> http://trac.edgewall.org/browser/tags/trac-1.0.1/tracopt/ticket/commit_updater.py?marks=211#L209
>
> However, that would leave the author of the ticket comment in its 
> case-sensitive form.
>
>
> <https://lh5.googleusercontent.com/-NMpt-nWcKq4/UyjaVujO40I/AAAAAAAABMc/498Bc7i_c90/s1600/Screenshot+from+2014-03-18+16%3A42%3A19.png>
>
>
>
>
>
>
>
>
>
>
>
> To work around that, we could replace the author of the Changeset object 
> with its lower case form, but it should also be realized that the 
> case-sensitivity of the username will be reflected anywhere the Subversion 
> changeset username is displayed, for example on the Repository Browser page:
>
>
> <https://lh5.googleusercontent.com/-zqHgAgEL98A/UyjaeaffHZI/AAAAAAAABMk/4zUXYxJ85wY/s1600/Screenshot+from+2014-03-18+16%3A32%3A48.png>
>
>
>
>
>
>
>
>
>
>
>
> Side note: This relates back to my question about what you see in the SVN 
> changeset messages. Do you see the username in uppercase characters when 
> viewing the changeset messages through your SVN client, and when viewing 
> those revisions in the repository browser?
>
> If we wish to optionally treat all usernames from the SVN repository as 
> lowercase, that issue would need to be dealt with in the Subversion FS 
> wrapper:
>
> http://trac.edgewall.org/browser/tags/trac-1.0.1/tracopt/versioncontrol/svn/svn_fs.py?marks=929#L918
>  
>
> We could have an option to coerce all author names coming from Subversion 
> changesets to lower case (effectively treating those usernames the same as 
> ignore_auth_case). I think that would probably give us consistent behavior 
> throughout Trac, but I'd like to get some more feedback from the Trac devs 
> on that proposed change. 
>
> An alternative is that you could just make your Subversion authorization 
> mechanism to be case-sensitive, but I guess we need to get to the bottom of 
> why that username is unexpectedly appearing in all uppercase.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/trac-dev.
For more options, visit https://groups.google.com/d/optout.

Reply via email to