Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
e8d99f28
Commit
e8d99f28
authored
Jan 02, 2012
by
Piotr Mitros
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GET -> POST
parent
93962c61
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
32 deletions
+43
-32
auth/views.py
+38
-29
courseware/module_render.py
+1
-1
courseware/views.py
+4
-2
No files found.
auth/views.py
View file @
e8d99f28
...
...
@@ -21,26 +21,34 @@ def index(request):
if
request
.
user
.
is_authenticated
():
return
redirect
(
'/courseware'
)
else
:
return
render_to_response
(
'index.html'
,
{
'error'
:
''
,
'csrf'
:
csrf
(
request
)[
'csrf_token'
]})
# Clean up how error is done.
csrf_token
=
csrf
(
request
)[
'csrf_token'
]
# TODO: Clean up how 'error' is done.
return
render_to_response
(
'index.html'
,
{
'error'
:
''
,
'csrf'
:
csrf_token
})
def
login_user
(
request
,
error
=
""
):
if
'email'
not
in
request
.
GET
or
'password'
not
in
request
.
GET
:
print
request
.
POST
if
'email'
not
in
request
.
POST
or
'password'
not
in
request
.
POST
:
print
"X"
return
render_to_response
(
'login.html'
,
{
'error'
:
error
.
replace
(
'+'
,
' '
)})
email
=
request
.
GE
T
[
'email'
]
password
=
request
.
GE
T
[
'password'
]
email
=
request
.
POS
T
[
'email'
]
password
=
request
.
POS
T
[
'password'
]
try
:
user
=
User
.
objects
.
get
(
email
=
email
)
except
User
.
DoesNotExist
:
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid login'
}))
# TODO: User error message
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid login'
}))
# TODO: User error message
username
=
user
.
username
user
=
authenticate
(
username
=
username
,
password
=
password
)
if
user
is
None
:
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid login'
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Invalid login'
}))
if
user
is
not
None
and
user
.
is_active
:
login
(
request
,
user
)
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Account not active. Check your e-mail.'
}))
return
HttpResponse
(
json
.
dumps
({
'success'
:
False
,
'error'
:
'Account not active. Check your e-mail.'
}))
def
logout_user
(
request
):
logout
(
request
)
...
...
@@ -50,12 +58,12 @@ def change_setting(request):
if
not
request
.
user
.
is_authenticated
():
return
redirect
(
'/'
)
up
=
UserProfile
.
objects
.
get
(
user
=
request
.
user
)
if
'location'
in
request
.
GE
T
:
if
'location'
in
request
.
POS
T
:
print
"loc"
up
.
location
=
request
.
GE
T
[
'location'
]
if
'language'
in
request
.
GE
T
:
up
.
location
=
request
.
POS
T
[
'location'
]
if
'language'
in
request
.
POS
T
:
print
"lang"
up
.
language
=
request
.
GE
T
[
'language'
]
up
.
language
=
request
.
POS
T
[
'language'
]
up
.
save
()
return
HttpResponse
(
json
.
dumps
({
'success'
:
True
,
...
...
@@ -66,18 +74,18 @@ def create_account(request):
js
=
{
'success'
:
False
}
# Confirm we have a properly formed request
for
a
in
[
'username'
,
'email'
,
'password'
,
'location'
,
'language'
,
'name'
]:
if
a
not
in
request
.
GE
T
:
if
a
not
in
request
.
POS
T
:
js
[
'value'
]
=
"Error (401 {field}). E-mail us."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
if
request
.
GE
T
[
'honor_code'
]
!=
u'true'
:
if
request
.
POS
T
[
'honor_code'
]
!=
u'true'
:
js
[
'value'
]
=
"To enroll, you must follow the honor code."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
if
request
.
GE
T
[
'terms_of_service'
]
!=
u'true'
:
if
request
.
POS
T
[
'terms_of_service'
]
!=
u'true'
:
js
[
'value'
]
=
"You must accept the terms of service."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
...
...
@@ -87,18 +95,18 @@ def create_account(request):
# this is a good idea
# TODO: Check password is sane
for
a
in
[
'username'
,
'email'
,
'password'
,
'terms_of_service'
,
'honor_code'
]:
if
len
(
request
.
GE
T
[
a
])
<
2
:
if
len
(
request
.
POS
T
[
a
])
<
2
:
js
[
'value'
]
=
"{field} is required."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
try
:
validate_email
(
request
.
GE
T
[
'email'
])
validate_email
(
request
.
POS
T
[
'email'
])
except
:
js
[
'value'
]
=
"Valid e-mail is required."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
try
:
validate_slug
(
request
.
GE
T
[
'username'
])
validate_slug
(
request
.
POS
T
[
'username'
])
except
:
js
[
'value'
]
=
"Username should only consist of A-Z and 0-9."
.
format
(
field
=
a
)
return
HttpResponse
(
json
.
dumps
(
js
))
...
...
@@ -106,18 +114,18 @@ def create_account(request):
# Confirm username and e-mail are unique. TODO: This should be in a transaction
if
len
(
User
.
objects
.
filter
(
username
=
request
.
GE
T
[
'username'
]))
>
0
:
if
len
(
User
.
objects
.
filter
(
username
=
request
.
POS
T
[
'username'
]))
>
0
:
js
[
'value'
]
=
"An account with this username already exists."
return
HttpResponse
(
json
.
dumps
(
js
))
if
len
(
User
.
objects
.
filter
(
email
=
request
.
GE
T
[
'email'
]))
>
0
:
if
len
(
User
.
objects
.
filter
(
email
=
request
.
POS
T
[
'email'
]))
>
0
:
js
[
'value'
]
=
"An account with this e-mail already exists."
return
HttpResponse
(
json
.
dumps
(
js
))
u
=
User
(
username
=
request
.
GE
T
[
'username'
],
email
=
request
.
GE
T
[
'email'
],
u
=
User
(
username
=
request
.
POS
T
[
'username'
],
email
=
request
.
POS
T
[
'email'
],
is_active
=
False
)
u
.
set_password
(
request
.
GE
T
[
'password'
])
u
.
set_password
(
request
.
POS
T
[
'password'
])
r
=
Registration
()
# TODO: Rearrange so that if part of the process fails, the whole process fails.
# Right now, we can have e.g. no registration e-mail sent out and a zombie account
...
...
@@ -125,12 +133,12 @@ def create_account(request):
r
.
register
(
u
)
up
=
UserProfile
(
user
=
u
)
up
.
name
=
request
.
GE
T
[
'name'
]
up
.
language
=
request
.
GE
T
[
'language'
]
up
.
location
=
request
.
GE
T
[
'location'
]
up
.
name
=
request
.
POS
T
[
'name'
]
up
.
language
=
request
.
POS
T
[
'language'
]
up
.
location
=
request
.
POS
T
[
'location'
]
up
.
save
()
d
=
{
'name'
:
request
.
GE
T
[
'name'
],
d
=
{
'name'
:
request
.
POS
T
[
'name'
],
'key'
:
r
.
activation_key
,
'site'
:
settings
.
SITE_NAME
}
...
...
@@ -146,14 +154,15 @@ def create_account(request):
return
HttpResponse
(
json
.
dumps
(
js
))
js
=
{
'success'
:
True
,
'value'
:
render_to_string
(
'registration/reg_complete.html'
,
{
'email'
:
request
.
GET
[
'email'
]})}
'value'
:
render_to_string
(
'registration/reg_complete.html'
,
{
'email'
:
request
.
POST
[
'email'
],
'csrf'
:
csrf
(
request
)[
'csrf_token'
]})}
return
HttpResponse
(
json
.
dumps
(
js
),
mimetype
=
"application/json"
)
def
activate_account
(
request
,
key
):
r
=
Registration
.
objects
.
filter
(
activation_key
=
key
)
if
len
(
r
)
==
1
:
r
[
0
]
.
activate
()
return
render_to_response
(
"activation_complete.html"
,{})
return
render_to_response
(
"activation_complete.html"
,{
'csrf'
:
csrf
(
request
)[
'csrf_token'
]
})
if
len
(
r
)
==
0
:
return
render_to_response
(
"activation_invalid.html"
,{})
return
render_to_response
(
"activation_invalid.html"
,{
'csrf'
:
csrf
(
request
)[
'csrf_token'
]
})
return
HttpResponse
(
"Unknown error. Please e-mail us to let us know how it happened."
)
courseware/module_render.py
View file @
e8d99f28
...
...
@@ -58,7 +58,7 @@ def modx_dispatch(request, module=None, dispatch=None, id=None):
s
.
module_id
,
ajax_url
=
ajax_url
,
state
=
s
.
state
)
html
=
instance
.
handle_ajax
(
dispatch
,
request
.
GE
T
)
html
=
instance
.
handle_ajax
(
dispatch
,
request
.
POS
T
)
s
.
state
=
instance
.
get_state
()
s
.
grade
=
instance
.
get_score
()[
'score'
]
s
.
save
()
...
...
courseware/views.py
View file @
e8d99f28
...
...
@@ -95,7 +95,8 @@ def render_accordion(request,course,chapter,section):
context
=
dict
([[
'active_chapter'
,
active_chapter
],
[
'toc'
,
toc
],
[
'course_name'
,
course
],
[
'format_string'
,
format_string
]]
+
\
[
'format_string'
,
format_string
],
[
'csrf'
,
csrf
(
request
)[
'csrf_token'
]]]
+
\
template_imports
.
items
())
return
{
'init_js'
:
render_to_string
(
'accordion_init.js'
,
context
),
'content'
:
render_to_string
(
'accordion.html'
,
context
)}
...
...
@@ -136,7 +137,8 @@ def index(request, course="6.002 Spring 2012", chapter="Using the System", secti
context
=
{
'init'
:
accordion
[
'init_js'
]
+
module
[
'init_js'
],
'accordion'
:
accordion
[
'content'
],
'content'
:
module
[
'content'
]}
'content'
:
module
[
'content'
],
'csrf'
:
csrf
(
request
)[
'csrf_token'
]}
return
render_to_response
(
'courseware.html'
,
context
)
Write
Preview
Markdown
is supported
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