Em 16-05-2011 03:05, Christian Johansen escreveu:
It is not explained the reason why the rules are different for new
and existent users, but I guess the original format was
USERNAME_FORMAT, which allowed underscore (_) and dots (.). Then,
for some unknown reason to me, it has probably changed for not
allowing dots and underscore anymore, probably for easing routes
generation. The different rules are probably explained because
there was no obvious thing to do with current users.
This is the exact reason. The "new" URL routing does not handle dots
in user names, so with it we restricted the pattern for user names.
That is why you can use dots and underscore in existent users but
not for new users. We should think in some better solution for
this anyway...
Allowing dots in user names is too complicated in routing and views.
The better approach would probably be to "freeze" dotted usernames -
i.e. not allow any new ones, not even for existing users. It would
probably even make sense to force existing users to update their user
name when editing their profile because URLs won't work for them anyway.
What could possible go wrong if we replaced the code below?
# For new users we are a little more strict than for existing ones.
USERNAME_FORMAT = /[a-z0-9\-_\.]+/i.freeze
USERNAME_FORMAT_ON_CREATE = /[a-z0-9\-]+/.freeze
...
validates_format_of :login, :with =>
/^#{USERNAME_FORMAT_ON_CREATE}$/i, :on => :create
validates_format_of :login, :with => /^#{USERNAME_FORMAT}$/i, :on
=> :update
with
USERNAME_FORMAT = /[a-z0-9\-]+/i.freeze # what used to be
USERNAME_FORMAT_ON_CREATE
validates_format_of :login, :with => /^#{USERNAME_FORMAT}$/i
Actually, I think the correct would be using \A and \Z. Maybe the above
would be simpler:
USERNAME_FORMAT = /\A[a-z0-9\-]+\Z/i.freeze
validates_format_of :login, :with => USERNAME_FORMAT
But this still allows some login like '---' or '007', while I'm not sure
it is ok to allow logins like that... Wow, how specifying login rules is
hard, don't you think? :)
What I mean is that I think the only way user.save (and thus validate)
could be called is by the user trying to update its own profile, right?
In this case, he or she will be forced to change their login if they
want to update their profile. We could than state the reason in the
message why they cannot keep their logins and encourage them to change them.
Is it right?
Rodrigo.
Not sure how to proceed yet :)
Best regards,
Rodrigo.
Em 15-05-2011 18:42, William Ghelfi escreveu:
I followed this guide:
http://cjohansen.no/en/ruby/setting_up_gitorious_on_your_own_server
And specified user.login=w.trumbitta in the create admin script,
as showed in the guide
:)
Wiz
Il giorno 15/mag/2011 23:34, "Rodrigo Rosenfeld Rosas"
<[email protected] <mailto:[email protected]>> ha scritto:
> I still don't understand. Are you talking about
script/create_admin? If
> so, the scripts only asks for e-mail and password and not about
the login.
>
> How exactly did you get your login with a dot in it? Did you do
that
> directly in database, through SQL or some tool?
>
> Em 14-05-2011 14:39, William Ghelfi escreveu:
>>
>> Hi,
>> It happened with the very first user, created via console
during the
>> installation.
>> Login was w.trumbitta
>> User creation went fine, but then there were the described
problems.
>>
>> Maybe it's more a glitch than a real bug?
>>
>> Bau,
>> Wiz
>>
>> Il giorno 14/mag/2011 19:10, "Rodrigo Rosenfeld Rosas"
>> <[email protected] <mailto:[email protected]>
<mailto:[email protected] <mailto:[email protected]>>> ha scritto:
>> > Em 12-05-2011 05:33, Wiz of Id escreveu:
>> >> production.log:
>> >>
>> ...
>> >> Read somewhere on the net that this happens to someone when the
>> >> username has a . in it.
>> >> Given the reason is really that, what can I do to fix the
issue :) ?
>> >
>> > Hi Wiz,
>> >
>> > I tried to replicate your problem but Gitorious didn't
allowed me to
>> > create a username with a dot in it. How did you get that?
>> >
>> > Regards, Rodrigo.
>
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]