Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
beat.web
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
beat
beat.web
Commits
efc8efeb
Commit
efc8efeb
authored
4 years ago
by
Flavio TARSETTI
Browse files
Options
Downloads
Patches
Plain Diff
[accounts][api/views] Code refactoring - remove duplicates
parent
1004f75a
No related branches found
No related tags found
1 merge request
!328
Improve automatic emails with temporary urls
Pipeline
#39873
canceled
4 years ago
Stage: build
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
beat/web/accounts/api.py
+16
-140
16 additions, 140 deletions
beat/web/accounts/api.py
beat/web/accounts/views.py
+155
-140
155 additions, 140 deletions
beat/web/accounts/views.py
with
171 additions
and
280 deletions
beat/web/accounts/api.py
+
16
−
140
View file @
efc8efeb
...
@@ -42,6 +42,10 @@ from .serializers import UserSerializer
...
@@ -42,6 +42,10 @@ from .serializers import UserSerializer
from
.models
import
Profile
from
.models
import
Profile
from
.models
import
SupervisionTrack
from
.models
import
SupervisionTrack
from
.models
import
TemporaryUrl
from
.models
import
TemporaryUrl
from
.views
import
accept_supervisee
from
.views
import
perform_revalidation
from
.views
import
supervisee_rejection
from
.views
import
emergency_rejection
from
..ui.registration.models
import
RegistrationProfile
from
..ui.registration.models
import
RegistrationProfile
from
..utils
import
mail
from
..utils
import
mail
...
@@ -124,6 +128,7 @@ class SupervisorAddSuperviseeView(BaseUpdateSupervisionTrackView):
...
@@ -124,6 +128,7 @@ class SupervisorAddSuperviseeView(BaseUpdateSupervisionTrackView):
permission_classes
=
BaseUpdateSupervisionTrackView
.
permission_classes
permission_classes
=
BaseUpdateSupervisionTrackView
.
permission_classes
def
put
(
self
,
request
,
supervisee_name
):
def
put
(
self
,
request
,
supervisee_name
):
now
=
datetime
.
datetime
.
now
()
supervisee
=
User
.
objects
.
get
(
username
=
supervisee_name
)
supervisee
=
User
.
objects
.
get
(
username
=
supervisee_name
)
if
supervisee
.
profile
.
status
!=
Profile
.
ACCEPTED
:
if
supervisee
.
profile
.
status
!=
Profile
.
ACCEPTED
:
if
not
request
.
user
.
is_superuser
:
if
not
request
.
user
.
is_superuser
:
...
@@ -152,39 +157,7 @@ class SupervisorAddSuperviseeView(BaseUpdateSupervisionTrackView):
...
@@ -152,39 +157,7 @@ class SupervisorAddSuperviseeView(BaseUpdateSupervisionTrackView):
supervisee
.
profile
.
supervision_key
supervisee
.
profile
.
supervision_key
)
)
supervisiontrack
.
is_valid
=
True
accept_supervisee
(
supervisiontrack
,
supervisee
,
now
)
now
=
datetime
.
datetime
.
now
()
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
supervisiontrack
.
expiration_date
=
now
+
expiration_date_delta
supervisiontrack
.
start_date
=
now
supervisiontrack
.
last_validation_date
=
now
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
supervisee
.
profile
.
rejection_date
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
is_active
=
True
supervisee
.
save
()
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
}
mail
.
send_email
(
"
registration/mail.supervisor_validated.subject.txt
"
,
"
registration/mail.supervisor_validated.message.txt
"
,
context
,
[
supervisee
.
email
],
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
else
:
else
:
...
@@ -206,6 +179,7 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
...
@@ -206,6 +179,7 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
def
put
(
self
,
request
,
supervisee_name
):
def
put
(
self
,
request
,
supervisee_name
):
supervisee
=
User
.
objects
.
get
(
username
=
supervisee_name
)
supervisee
=
User
.
objects
.
get
(
username
=
supervisee_name
)
now
=
datetime
.
datetime
.
now
()
if
not
supervisee
.
profile
.
is_supervisor
:
if
not
supervisee
.
profile
.
is_supervisor
:
supervisiontrack
=
SupervisionTrack
.
objects
.
get
(
supervisiontrack
=
SupervisionTrack
.
objects
.
get
(
supervisor
=
request
.
user
,
supervisor
=
request
.
user
,
...
@@ -270,26 +244,7 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
...
@@ -270,26 +244,7 @@ class SupervisorRemoveSuperviseeView(BaseUpdateSupervisionTrackView):
registration_profile
.
delete
()
registration_profile
.
delete
()
else
:
else
:
# Reject this account and inform by email the user
# Reject this account and inform by email the user
now
=
datetime
.
datetime
.
now
()
supervisee_rejection
(
supervisiontrack
,
supervisee
,
now
)
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
supervisiontrack
.
is_valid
=
False
if
supervisee
.
profile
.
status
!=
Profile
.
BLOCKED
:
supervisee
.
profile
.
status
=
Profile
.
REJECTED
if
supervisee
.
profile
.
rejection_date
is
None
:
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
else
:
supervisee
.
profile
.
rejection_date
=
None
supervisee
.
profile
.
supervision_key
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
if
not
supervisee
.
profile
.
is_supervisor
:
if
not
supervisee
.
profile
.
is_supervisor
:
...
@@ -627,97 +582,18 @@ class SuperviseeReValidationView(BaseUpdateSupervisionTrackFromSuperviseeView):
...
@@ -627,97 +582,18 @@ class SuperviseeReValidationView(BaseUpdateSupervisionTrackFromSuperviseeView):
supervisee
=
supervisee
,
supervisee
=
supervisee
,
supervisee__profile__supervision_key
=
models
.
F
(
"
supervision_key
"
),
supervisee__profile__supervision_key
=
models
.
F
(
"
supervision_key
"
),
)
)
if
supervisiontrack
.
is_valid
:
if
supervisee
.
profile
.
status
==
Profile
.
YEARREVALIDATION
:
# Check Supervisor validity
supervisor
=
supervisiontrack
.
supervisor
# If Supervisor account is not valid. Reject the account (though this should already be done during supervisor rejection)
if
supervisor
.
profile
.
status
!=
Profile
.
BLOCKED
:
# Change status
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
# Extend supervisiontrack validity for another 12 months
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
new_expiration_date
=
(
supervisiontrack
.
expiration_date
+
expiration_date_delta
)
supervisiontrack
.
expiration_date
=
new_expiration_date
supervisiontrack
.
last_validation_date
=
now
else
:
# Change status
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
success
,
error_message
=
perform_revalidation
(
request
,
supervisiontrack
,
supervisee
,
now
)
supervisiontrack
.
is_valid
=
False
result
=
{
"
error
"
:
error_message
,
supervisee
.
profile
.
status
=
Profile
.
REJECTED
}
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
if
not
success
:
supervisee
.
profile
.
supervision_key
=
None
# save
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
# Inform supervisor about supervisee revalidation
# Possible supervisor rejection available
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
,
)
temp_url_rejection
=
TemporaryUrl
.
objects
.
create_temporary_url
(
TemporaryUrl
.
REJECTION
,
supervisiontrack
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
"
temp_url
"
:
temp_url_rejection
.
url_hash
,
}
mail
.
send_email
(
"
registration/mail.account_revalidation_supervisor.subject.txt
"
,
"
registration/mail.supervisor_possible_supervisee_rejection.message.txt
"
,
context
,
[
supervisiontrack
.
supervisor
.
email
],
)
else
:
# Track already valid
reason
=
"
You don
'
t need to revalidate at the moment, your supervision is still valid
"
result
=
{
"
error
"
:
reason
,
}
return
BadRequestResponse
(
result
)
else
:
# A pending request already exist
reason
=
"
You are not able to perform this action as you already have a pending supervision request
"
result
=
{
"
error
"
:
reason
,
}
return
BadRequestResponse
(
result
)
return
BadRequestResponse
(
result
)
else
:
# No key is present in supervisee
# Make sure all tracks are invalid
supervisiontracks
=
SupervisionTrack
.
objects
.
filter
(
supervisee
=
supervisee
,
is_valid
=
True
)
# This should never be the case but if it happens invalidate all tracks
if
supervisiontracks
.
count
()
>
0
:
now
=
datetime
.
datetime
.
now
()
for
track
in
supervisiontracks
:
track
.
is_valid
=
False
track
.
expiration_date
=
now
track
.
save
()
# Not allowed to do this (unproper profile.status)
else
:
reason
=
"
You are not allowed to perform this action, you first need to get a valid
supervis
ion
"
error_message
=
emergency_rejection
(
request
,
supervis
ee
)
result
=
{
result
=
{
"
error
"
:
reason
,
"
error
"
:
error_message
,
}
}
return
BadRequestResponse
(
result
)
return
BadRequestResponse
(
result
)
...
...
This diff is collapsed.
Click to expand it.
beat/web/accounts/views.py
+
155
−
140
View file @
efc8efeb
...
@@ -47,6 +47,7 @@ from .models import Profile
...
@@ -47,6 +47,7 @@ from .models import Profile
from
.models
import
TemporaryUrl
from
.models
import
TemporaryUrl
from
..utils
import
mail
from
..utils
import
mail
from
..common.responses
import
BadRequestResponse
import
datetime
import
datetime
from
urllib.parse
import
urlparse
from
urllib.parse
import
urlparse
...
@@ -171,6 +172,155 @@ def account_settings(request):
...
@@ -171,6 +172,155 @@ def account_settings(request):
)
)
def
emergency_rejection
(
request
,
supervisee
):
# No key is present in supervisee
# Make sure all tracks are invalid
supervisiontracks
=
SupervisionTrack
.
objects
.
filter
(
supervisee
=
supervisee
,
is_valid
=
True
)
# This should never be the case but if it happens invalidate all tracks
if
supervisiontracks
.
count
()
>
0
:
now
=
datetime
.
datetime
.
now
()
for
track
in
supervisiontracks
:
track
.
is_valid
=
False
track
.
expiration_date
=
now
track
.
save
()
# Not allowed to do this (unproper profile.status)
error_message
=
"
You are not allowed to perform this action, you first need to get a valid supervision
"
return
error_message
def
supervisee_rejection
(
supervisiontrack
,
supervisee
,
now
):
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
supervisiontrack
.
is_valid
=
False
if
supervisee
.
profile
.
status
!=
Profile
.
BLOCKED
:
supervisee
.
profile
.
status
=
Profile
.
REJECTED
if
supervisee
.
profile
.
rejection_date
is
None
:
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
else
:
supervisee
.
profile
.
rejection_date
=
None
supervisee
.
profile
.
supervision_key
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
def
perform_revalidation
(
request
,
supervisiontrack
,
supervisee
,
now
):
success
=
False
error_message
=
None
if
supervisiontrack
.
is_valid
:
if
supervisee
.
profile
.
status
==
Profile
.
YEARREVALIDATION
:
# Check Supervisor validity
supervisor
=
supervisiontrack
.
supervisor
# If Supervisor account is not valid. Reject the account (though this should already be done during supervisor rejection)
if
supervisor
.
profile
.
status
!=
Profile
.
BLOCKED
:
# Change status
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
# Extend supervisiontrack validity for another 12 months
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
new_expiration_date
=
(
supervisiontrack
.
expiration_date
+
expiration_date_delta
)
supervisiontrack
.
expiration_date
=
new_expiration_date
supervisiontrack
.
last_validation_date
=
now
else
:
# Change status
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
supervisiontrack
.
is_valid
=
False
supervisee
.
profile
.
status
=
Profile
.
REJECTED
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
supervisee
.
profile
.
supervision_key
=
None
# save
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
# Inform supervisor about supervisee revalidation
# Possible supervisor rejection available
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
,
)
temp_url_rejection
=
TemporaryUrl
.
objects
.
create_temporary_url
(
TemporaryUrl
.
REJECTION
,
supervisiontrack
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
"
temp_url
"
:
temp_url_rejection
.
url_hash
,
}
mail
.
send_email
(
"
registration/mail.account_revalidation_supervisor.subject.txt
"
,
"
registration/mail.supervisor_possible_supervisee_rejection.message.txt
"
,
context
,
[
supervisiontrack
.
supervisor
.
email
],
)
success
=
True
return
(
success
,
error_message
)
else
:
# Track already valid
error_message
=
"
You don
'
t need to revalidate at the moment, your supervision is still valid
"
return
(
success
,
error_message
)
else
:
# A pending request already exist
error_message
=
"
You are not able to perform this action as you already have a pending supervision request
"
return
(
success
,
error_message
)
def
accept_supervisee
(
supervisiontrack
,
supervisee
,
now
):
supervisiontrack
.
is_valid
=
True
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
supervisiontrack
.
expiration_date
=
now
+
expiration_date_delta
supervisiontrack
.
start_date
=
now
supervisiontrack
.
last_validation_date
=
now
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
supervisee
.
profile
.
rejection_date
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
is_active
=
True
supervisee
.
save
()
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
}
mail
.
send_email
(
"
registration/mail.supervisor_validated.subject.txt
"
,
"
registration/mail.supervisor_validated.message.txt
"
,
context
,
[
supervisee
.
email
],
)
def
generate_load_response
(
request
,
temp_url
,
template
,
parameters
):
def
generate_load_response
(
request
,
temp_url
,
template
,
parameters
):
answer
=
{}
answer
=
{}
answer
[
"
template
"
]
=
template
answer
[
"
template
"
]
=
template
...
@@ -191,38 +341,7 @@ def load_temporary_url_validation(request, hash_url):
...
@@ -191,38 +341,7 @@ def load_temporary_url_validation(request, hash_url):
if
temp_url
.
status
==
TemporaryUrl
.
VALIDATION
:
if
temp_url
.
status
==
TemporaryUrl
.
VALIDATION
:
# Supervisor validates new Supervisee
# Supervisor validates new Supervisee
if
supervisee
.
profile
.
status
!=
Profile
.
ACCEPTED
and
now
<
temp_url
.
expires
:
if
supervisee
.
profile
.
status
!=
Profile
.
ACCEPTED
and
now
<
temp_url
.
expires
:
supervisiontrack
.
is_valid
=
True
accept_supervisee
(
supervisiontrack
,
supervisee
,
now
)
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
supervisiontrack
.
expiration_date
=
now
+
expiration_date_delta
supervisiontrack
.
start_date
=
now
supervisiontrack
.
last_validation_date
=
now
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
supervisee
.
profile
.
rejection_date
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
is_active
=
True
supervisee
.
save
()
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
}
mail
.
send_email
(
"
registration/mail.supervisor_validated.subject.txt
"
,
"
registration/mail.supervisor_validated.message.txt
"
,
context
,
[
supervisee
.
email
],
)
return
generate_load_response
(
return
generate_load_response
(
request
,
request
,
...
@@ -238,101 +357,16 @@ def load_temporary_url_validation(request, hash_url):
...
@@ -238,101 +357,16 @@ def load_temporary_url_validation(request, hash_url):
elif
temp_url
.
status
==
TemporaryUrl
.
YEARREVALIDATION
:
elif
temp_url
.
status
==
TemporaryUrl
.
YEARREVALIDATION
:
# Supervisee re-validation
# Supervisee re-validation
if
supervisee
.
profile
.
supervision_key
is
not
None
and
now
<
temp_url
.
expires
:
if
supervisee
.
profile
.
supervision_key
is
not
None
and
now
<
temp_url
.
expires
:
if
supervisiontrack
.
is_valid
:
success
,
error_message
=
perform_revalidation
(
request
,
supervisiontrack
,
supervisee
,
now
)
if
supervisee
.
profile
.
status
==
Profile
.
YEARREVALIDATION
:
if
not
success
:
# Check Supervisor validity
supervisor
=
supervisiontrack
.
supervisor
# If Supervisor account is not valid. Reject the account (though this should already be done during supervisor rejection)
if
supervisor
.
profile
.
status
!=
Profile
.
BLOCKED
:
# Change status
supervisee
.
profile
.
status
=
Profile
.
ACCEPTED
# Extend supervisiontrack validity for another 12 months
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_EXPIRATION_DAYS
)
new_expiration_date
=
(
supervisiontrack
.
expiration_date
+
expiration_date_delta
)
supervisiontrack
.
expiration_date
=
new_expiration_date
supervisiontrack
.
last_validation_date
=
now
else
:
# Change status
expiration_date_delta
=
datetime
.
timedelta
(
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
supervisiontrack
.
is_valid
=
False
supervisee
.
profile
.
status
=
Profile
.
REJECTED
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
supervisee
.
profile
.
supervision_key
=
None
# save
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
# Inform supervisor about supervisee revalidation
# Possible supervisor rejection available
parsed_url
=
urlparse
(
settings
.
URL_PREFIX
)
server_address
=
"
%s://%s
"
%
(
parsed_url
.
scheme
,
parsed_url
.
hostname
,
)
temp_url_rejection
=
TemporaryUrl
.
objects
.
create_temporary_url
(
TemporaryUrl
.
REJECTION
,
supervisiontrack
)
context
=
{
"
supervisor
"
:
supervisiontrack
.
supervisor
,
"
supervisee
"
:
supervisee
,
"
prefix
"
:
server_address
,
"
temp_url
"
:
temp_url_rejection
.
url_hash
,
}
mail
.
send_email
(
"
registration/mail.account_revalidation_supervisor.subject.txt
"
,
"
registration/mail.supervisor_possible_supervisee_rejection.message.txt
"
,
context
,
[
supervisiontrack
.
supervisor
.
email
],
)
else
:
# Track already valid
error_message
=
"
You don
'
t need to revalidate at the moment, your supervision is still valid
"
return
generate_load_response
(
request
,
temp_url
,
"
accounts/url_revalidation_failed.html
"
,
{
"
error_message
"
:
error_message
},
)
else
:
# A pending request already exist
error_message
=
"
You are not able to perform this action as you already have a pending supervision request
"
return
generate_load_response
(
return
generate_load_response
(
request
,
request
,
temp_url
,
temp_url
,
"
accounts/url_revalidation_failed.html
"
,
"
accounts/url_revalidation_failed.html
"
,
{
"
error_message
"
:
error_message
},
{
"
error_message
"
:
error_message
},
)
)
else
:
else
:
# No key is present in supervisee
error_message
=
emergency_rejection
(
request
,
supervisee
)
# Make sure all tracks are invalid
supervisiontracks
=
SupervisionTrack
.
objects
.
filter
(
supervisee
=
supervisee
,
is_valid
=
True
)
# This should never be the case but if it happens invalidate all tracks
if
supervisiontracks
.
count
()
>
0
:
now
=
datetime
.
datetime
.
now
()
for
track
in
supervisiontracks
:
track
.
is_valid
=
False
track
.
expiration_date
=
now
track
.
save
()
# Not allowed to do this (unproper profile.status)
error_message
=
"
You are not allowed to perform this action, you first need to get a valid supervision
"
return
generate_load_response
(
return
generate_load_response
(
request
,
request
,
temp_url
,
temp_url
,
...
@@ -374,26 +408,7 @@ def load_temporary_url_rejection(request, hash_url):
...
@@ -374,26 +408,7 @@ def load_temporary_url_rejection(request, hash_url):
# Supervisor rejects Supervisee
# Supervisor rejects Supervisee
if
supervisee
.
profile
.
supervision_key
is
not
None
and
now
<
temp_url
.
expires
:
if
supervisee
.
profile
.
supervision_key
is
not
None
and
now
<
temp_url
.
expires
:
if
supervisiontrack
.
is_valid
:
if
supervisiontrack
.
is_valid
:
expiration_date_delta
=
datetime
.
timedelta
(
supervisee_rejection
(
supervisiontrack
,
supervisee
,
now
)
days
=
settings
.
ACCOUNT_BLOCKAGE_AFTER_FIRST_REJECTION_DAYS
)
supervisiontrack
.
expiration_date
=
now
supervisiontrack
.
is_valid
=
False
if
supervisee
.
profile
.
status
!=
Profile
.
BLOCKED
:
supervisee
.
profile
.
status
=
Profile
.
REJECTED
if
supervisee
.
profile
.
rejection_date
is
None
:
supervisee
.
profile
.
rejection_date
=
now
+
expiration_date_delta
else
:
supervisee
.
profile
.
rejection_date
=
None
supervisee
.
profile
.
supervision_key
=
None
supervisiontrack
.
save
()
supervisee
.
profile
.
save
()
supervisee
.
save
()
mail
.
send_email
(
mail
.
send_email
(
"
registration/mail.supervisor_rejected.subject.txt
"
,
"
registration/mail.supervisor_rejected.subject.txt
"
,
"
registration/mail.supervisor_rejected.message.txt
"
,
"
registration/mail.supervisor_rejected.message.txt
"
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment