Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AlekSIS-Core
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
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
AlekSIS®
Official
AlekSIS-Core
Commits
dd746d75
Commit
dd746d75
authored
2 years ago
by
Nik | Klampfradler
Browse files
Options
Downloads
Plain Diff
Merge branch '689-invitations-person-invitation-throws-unexpected-error' into 'master'
Fix invitations of existing persons with short name Closes
#689
See merge request
!1114
parents
4a7b9277
a0f54ceb
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!1114
Fix invitations of existing persons with short name
Pipeline
#99836
failed
2 years ago
Stage: prepare
Stage: test
Stage: build
Stage: publish
Stage: docker
Stage: deploy
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CHANGELOG.rst
+6
-0
6 additions, 0 deletions
CHANGELOG.rst
aleksis/core/forms.py
+27
-12
27 additions, 12 deletions
aleksis/core/forms.py
aleksis/core/views.py
+3
-8
3 additions, 8 deletions
aleksis/core/views.py
with
36 additions
and
20 deletions
CHANGELOG.rst
+
6
−
0
View file @
dd746d75
...
@@ -20,6 +20,12 @@ Changed
...
@@ -20,6 +20,12 @@ Changed
* Rewrite of frontend using Vuetify
* Rewrite of frontend using Vuetify
Fixed
~~~~~
* Invitations for existing short name did not work.
* Invitations for persons without pre-defined e-mail address did not behave correctly
Removed
Removed
~~~~~~~
~~~~~~~
...
...
This diff is collapsed.
Click to expand it.
aleksis/core/forms.py
+
27
−
12
View file @
dd746d75
...
@@ -611,6 +611,7 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
...
@@ -611,6 +611,7 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
request
=
kwargs
.
pop
(
"
request
"
,
None
)
request
=
kwargs
.
pop
(
"
request
"
,
None
)
super
(
AccountRegisterForm
,
self
).
__init__
(
*
args
,
**
kwargs
)
super
(
AccountRegisterForm
,
self
).
__init__
(
*
args
,
**
kwargs
)
person
=
None
if
request
.
session
.
get
(
"
account_verified_email
"
):
if
request
.
session
.
get
(
"
account_verified_email
"
):
email
=
request
.
session
[
"
account_verified_email
"
]
email
=
request
.
session
[
"
account_verified_email
"
]
...
@@ -619,16 +620,27 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
...
@@ -619,16 +620,27 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
except
(
Person
.
DoesNotExist
,
Person
.
MultipleObjectsReturned
):
except
(
Person
.
DoesNotExist
,
Person
.
MultipleObjectsReturned
):
raise
SuspiciousOperation
()
raise
SuspiciousOperation
()
self
.
fields
[
"
email
"
].
disabled
=
True
elif
request
.
session
.
get
(
"
invitation_code
"
):
self
.
fields
[
"
email2
"
].
disabled
=
True
try
:
invitation
=
PersonInvitation
.
objects
.
get
(
key
=
request
.
session
.
get
(
"
invitation_code
"
)
)
except
PersonInvitation
.
DoesNotExist
:
raise
SuspiciousOperation
()
if
person
:
person
=
invitation
.
person
available_fields
=
[
field
.
name
for
field
in
Person
.
_meta
.
get_fields
()]
if
person
:
self
.
instance
=
person
available_fields
=
[
field
.
name
for
field
in
Person
.
_meta
.
get_fields
()]
if
person
.
email
:
self
.
fields
[
"
email
"
].
disabled
=
True
self
.
fields
[
"
email2
"
].
disabled
=
True
self
.
fields
[
"
email2
"
].
initial
=
person
.
email
self
.
fields
[
"
email2
"
].
initial
=
person
.
email
for
field
in
self
.
fields
:
for
field
in
self
.
fields
:
if
field
in
available_fields
and
getattr
(
person
,
field
):
if
field
in
available_fields
and
getattr
(
person
,
field
):
self
.
fields
[
field
].
disabled
=
True
self
.
fields
[
field
].
disabled
=
True
self
.
fields
[
field
].
initial
=
getattr
(
person
,
field
)
self
.
fields
[
field
].
initial
=
getattr
(
person
,
field
)
def
save
(
self
,
request
):
def
save
(
self
,
request
):
adapter
=
get_adapter
(
request
)
adapter
=
get_adapter
(
request
)
...
@@ -639,11 +651,14 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
...
@@ -639,11 +651,14 @@ class AccountRegisterForm(SignupForm, ExtensibleForm):
for
field
in
Person
.
_meta
.
get_fields
():
for
field
in
Person
.
_meta
.
get_fields
():
if
field
.
name
in
self
.
cleaned_data
:
if
field
.
name
in
self
.
cleaned_data
:
data
[
field
.
name
]
=
self
.
cleaned_data
[
field
.
name
]
data
[
field
.
name
]
=
self
.
cleaned_data
[
field
.
name
]
person_qs
=
Person
.
objects
.
filter
(
email
=
data
[
"
email
"
])
if
self
.
instance
:
if
not
person_qs
.
exists
():
person_qs
=
Person
.
objects
.
filter
(
pk
=
self
.
instance
.
pk
)
if
get_site_preferences
()[
"
account__auto_create_person
"
]:
Person
.
objects
.
create
(
user
=
user
,
**
data
)
else
:
else
:
person_qs
=
Person
.
objects
.
filter
(
email
=
data
[
"
email
"
])
if
not
person_qs
.
exists
():
if
get_site_preferences
()[
"
account__auto_create_person
"
]:
Person
.
objects
.
create
(
user
=
user
,
**
data
)
if
person_qs
.
exists
():
person_qs
.
update
(
user
=
user
,
**
data
)
person_qs
.
update
(
user
=
user
,
**
data
)
self
.
custom_signup
(
request
,
user
)
self
.
custom_signup
(
request
,
user
)
setup_user_email
(
request
,
user
,
[])
setup_user_email
(
request
,
user
,
[])
...
...
This diff is collapsed.
Click to expand it.
aleksis/core/views.py
+
3
−
8
View file @
dd746d75
...
@@ -51,7 +51,7 @@ from haystack.inputs import AutoQuery
...
@@ -51,7 +51,7 @@ from haystack.inputs import AutoQuery
from
haystack.query
import
SearchQuerySet
from
haystack.query
import
SearchQuerySet
from
haystack.utils.loading
import
UnifiedIndex
from
haystack.utils.loading
import
UnifiedIndex
from
health_check.views
import
MainView
from
health_check.views
import
MainView
from
invitations.views
import
SendInvite
,
accept_invitation
from
invitations.views
import
SendInvite
from
oauth2_provider.exceptions
import
OAuthToolkitError
from
oauth2_provider.exceptions
import
OAuthToolkitError
from
oauth2_provider.models
import
get_application_model
from
oauth2_provider.models
import
get_application_model
from
oauth2_provider.views
import
AuthorizationView
from
oauth2_provider.views
import
AuthorizationView
...
@@ -1104,12 +1104,7 @@ class EnterInvitationCode(FormView):
...
@@ -1104,12 +1104,7 @@ class EnterInvitationCode(FormView):
and
not
PersonInvitation
.
objects
.
get
(
key
=
code
).
accepted
and
not
PersonInvitation
.
objects
.
get
(
key
=
code
).
accepted
and
not
PersonInvitation
.
objects
.
get
(
key
=
code
).
key_expired
()
and
not
PersonInvitation
.
objects
.
get
(
key
=
code
).
key_expired
()
):
):
invitation
=
PersonInvitation
.
objects
.
get
(
key
=
code
)
self
.
request
.
session
[
"
invitation_code
"
]
=
code
# Mark invitation as accepted and redirect to signup
accept_invitation
(
invitation
=
invitation
,
request
=
self
.
request
,
signal_sender
=
self
.
request
.
user
)
self
.
request
.
session
[
"
invitation_code_entered
"
]
=
True
return
redirect
(
"
account_signup
"
)
return
redirect
(
"
account_signup
"
)
return
redirect
(
"
invitations:accept-invite
"
,
code
)
return
redirect
(
"
invitations:accept-invite
"
,
code
)
...
@@ -1432,7 +1427,7 @@ class AccountRegisterView(SignupView):
...
@@ -1432,7 +1427,7 @@ class AccountRegisterView(SignupView):
if
(
if
(
not
request
.
user
.
has_perm
(
"
core.can_register
"
)
not
request
.
user
.
has_perm
(
"
core.can_register
"
)
and
not
request
.
session
.
get
(
"
account_verified_email
"
)
and
not
request
.
session
.
get
(
"
account_verified_email
"
)
and
not
request
.
session
.
get
(
"
invitation_code
_entered
"
)
and
not
request
.
session
.
get
(
"
invitation_code
"
)
):
):
raise
PermissionDenied
()
raise
PermissionDenied
()
return
super
(
AccountRegisterView
,
self
).
dispatch
(
request
,
*
args
,
**
kwargs
)
return
super
(
AccountRegisterView
,
self
).
dispatch
(
request
,
*
args
,
**
kwargs
)
...
...
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