Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
262ed8347a5d
Commit
262ed834
authored
Nov 28, 2012
by
Dmitriy Zaporozhets
Browse files
Validate username. Gitlab::Regex added
parent
ac9a7823d0c2
Changes
8
Hide whitespace changes
Inline
Side-by-side
app/models/namespace.rb
View file @
262ed834
...
...
@@ -19,7 +19,7 @@
validates
:name
,
presence:
true
,
uniqueness:
true
validates
:path
,
uniqueness:
true
,
presence:
true
,
length:
{
within:
1
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
format:
{
with:
Gitlab
::
Regex
.
path_regex
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:owner
,
presence:
true
...
...
app/models/project.rb
View file @
262ed834
...
...
@@ -59,7 +59,7 @@
validates
:description
,
length:
{
within:
0
..
2000
}
validates
:name
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:path
,
presence:
true
,
length:
{
within:
0
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
format:
{
with:
Gitlab
::
Regex
.
path_regex
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:issues_enabled
,
:wall_enabled
,
:merge_requests_enabled
,
:wiki_enabled
,
inclusion:
{
in:
[
true
,
false
]
}
...
...
app/models/user.rb
View file @
262ed834
...
...
@@ -41,8 +41,8 @@
attr_accessible
:email
,
:password
,
:password_confirmation
,
:remember_me
,
:bio
,
:name
,
:username
,
:skype
,
:linkedin
,
:twitter
,
:dark_scheme
,
:theme_id
,
:force_random_password
,
:extern_uid
,
:provider
,
:
as
=>
[
:default
,
:admin
]
attr_accessible
:projects_limit
,
:
as
=>
:admin
:extern_uid
,
:provider
,
as
:
[
:default
,
:admin
]
attr_accessible
:projects_limit
,
as
:
:admin
attr_accessor
:force_random_password
...
...
@@ -63,5 +63,5 @@
has_many
:assigned_merge_requests
,
class_name:
"MergeRequest"
,
foreign_key: :assignee_id
,
dependent: :destroy
validates
:bio
,
length:
{
within:
0
..
255
}
validates
:extern_uid
,
:
allow_blank
=>
true
,
:
uniqueness
=>
{
:
scope
=>
:provider
}
validates
:extern_uid
,
allow_blank
:
true
,
uniqueness
:
{
scope
:
:provider
}
validates
:projects_limit
,
presence:
true
,
numericality:
{
greater_than_or_equal_to:
0
}
...
...
@@ -67,5 +67,8 @@
validates
:projects_limit
,
presence:
true
,
numericality:
{
greater_than_or_equal_to:
0
}
validates
:username
,
presence:
true
validates
:username
,
presence:
true
,
uniqueness:
true
,
format:
{
with:
Gitlab
::
Regex
.
username_regex
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
before_validation
:generate_password
,
on: :create
before_save
:ensure_authentication_token
...
...
app/views/admin/users/index.html.haml
View file @
262ed834
...
...
@@ -6,7 +6,7 @@
=
form_tag
admin_users_path
,
method: :get
,
class:
'form-inline'
do
=
text_field_tag
:name
,
params
[
:name
],
class:
"xlarge"
=
submit_tag
"Search"
,
class:
"btn submit primary"
%ul
.nav.nav-
pill
s
%ul
.nav.nav-
tab
s
%li
{
class:
"#{'active' unless params[:filter]}"
}
=
link_to
"Active"
,
admin_users_path
%li
{
class:
"#{'active' if params[:filter] == "
admins
"}"
}
...
...
@@ -23,6 +23,7 @@
%thead
%th
Admin
%th
Name
%th
Username
%th
Email
%th
Projects
%th
Edit
...
...
@@ -26,10 +27,9 @@
%th
Email
%th
Projects
%th
Edit
%th
Blocked
%th
.cred
Danger Zone!
-
@admin_users
.
each
do
|
user
|
%tr
%td
=
check_box_tag
"admin"
,
1
,
user
.
admin
,
disabled: :disabled
%td
=
link_to
user
.
name
,
[
:admin
,
user
]
...
...
@@ -30,9 +30,10 @@
%th
.cred
Danger Zone!
-
@admin_users
.
each
do
|
user
|
%tr
%td
=
check_box_tag
"admin"
,
1
,
user
.
admin
,
disabled: :disabled
%td
=
link_to
user
.
name
,
[
:admin
,
user
]
%td
=
user
.
username
%td
=
user
.
email
%td
=
user
.
users_projects
.
count
%td
=
link_to
'Edit'
,
edit_admin_user_path
(
user
),
id:
"edit_
#{
dom_id
(
user
)
}
"
,
class:
"btn small"
...
...
@@ -36,8 +37,8 @@
%td
=
user
.
email
%td
=
user
.
users_projects
.
count
%td
=
link_to
'Edit'
,
edit_admin_user_path
(
user
),
id:
"edit_
#{
dom_id
(
user
)
}
"
,
class:
"btn small"
%td
%td
.bgred
-
if
user
.
blocked
=
link_to
'Unblock'
,
unblock_admin_user_path
(
user
),
method: :put
,
class:
"btn small success"
-
else
=
link_to
'Block'
,
block_admin_user_path
(
user
),
confirm:
'USER WILL BE BLOCKED! Are you sure?'
,
method: :put
,
class:
"btn small danger"
...
...
@@ -40,7 +41,7 @@
-
if
user
.
blocked
=
link_to
'Unblock'
,
unblock_admin_user_path
(
user
),
method: :put
,
class:
"btn small success"
-
else
=
link_to
'Block'
,
block_admin_user_path
(
user
),
confirm:
'USER WILL BE BLOCKED! Are you sure?'
,
method: :put
,
class:
"btn small danger"
%td
.bgred
=
link_to
'Destroy'
,
[
:admin
,
user
],
confirm:
"USER
#{
user
.
name
}
WILL BE REMOVED! Are you sure?"
,
method: :delete
,
class:
"btn small danger"
=
link_to
'Destroy'
,
[
:admin
,
user
],
confirm:
"USER
#{
user
.
name
}
WILL BE REMOVED! Are you sure?"
,
method: :delete
,
class:
"btn small danger"
=
paginate
@admin_users
,
theme:
"admin"
app/views/admin/users/show.html.haml
View file @
262ed834
...
...
@@ -24,6 +24,12 @@
%tr
%td
%b
Username:
%td
=
@admin_user
.
username
%tr
%td
%b
Admin:
%td
=
check_box_tag
"admin"
,
1
,
@admin_user
.
admin
,
disabled: :disabled
%tr
...
...
app/views/profile/account.html.haml
View file @
262ed834
...
...
@@ -42,7 +42,7 @@
.clearfix
=
f
.
label
:password
.input
=
f
.
password_field
:password
.input
=
f
.
password_field
:password
,
required:
true
.clearfix
=
f
.
label
:password_confirmation
.input
...
...
@@ -46,7 +46,7 @@
.clearfix
=
f
.
label
:password_confirmation
.input
=
f
.
password_field
:password_confirmation
=
f
.
password_field
:password_confirmation
,
required:
true
.clearfix
.input
=
f
.
submit
'Save password'
,
class:
"btn save-btn"
...
...
@@ -62,7 +62,7 @@
.padded
=
f
.
label
:username
.input
=
f
.
text_field
:username
=
f
.
text_field
:username
,
required:
true
.input
=
f
.
submit
'Save username'
,
class:
"btn save-btn"
...
...
lib/gitlab/regex.rb
0 → 100644
View file @
262ed834
module
Gitlab
module
Regex
extend
self
def
username_regex
default_regex
end
def
path_regex
default_regex
end
protected
def
default_regex
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
end
end
end
spec/models/user_spec.rb
View file @
262ed834
...
...
@@ -58,6 +58,7 @@
end
describe
'validations'
do
it
{
should
validate_presence_of
(
:username
)
}
it
{
should
validate_presence_of
(
:projects_limit
)
}
it
{
should
validate_numericality_of
(
:projects_limit
)
}
it
{
should
allow_value
(
0
).
for
(
:projects_limit
)
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment