Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SRCT
go
Commits
4a95d159
Commit
4a95d159
authored
Jul 29, 2018
by
David Haynes
🙆
Browse files
Outline of API in place
parent
d490f3bc
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
docker-compose.yml
View file @
4a95d159
...
...
@@ -36,4 +36,3 @@ services:
-
GO_EMAIL_HOST_PASSWORD=
-
GO_EMAIL_FROM=
-
GO_EMAIL_TO=
-
SUPERUSER=dhaynes3
docker-startup.sh
View file @
4a95d159
...
...
@@ -8,7 +8,7 @@ export GO_SECRET_KEY
export
GO_CREATE_SUPERUSER
GO_SECRET_KEY
=
$(
dd
if
=
/dev/urandom
count
=
100 |
tr
-dc
"A-Za-z0-9"
|
fold
-w
60 |
head
-n1
2>/dev/null
)
GO_CREATE_SUPERUSER
=
"from django.contrib.auth import get_user_model; User = get_user_model(); me = User.objects.get(username='
$SUPERUSER
'); me.first_name = '
David
'; me.last_name = '
Haynes
'; me.save(); "
GO_CREATE_SUPERUSER
=
"from django.contrib.auth import get_user_model; User = get_user_model(); me = User.objects.get(username='
admin
'); me.first_name = '
mr
'; me.last_name = '
admin
'; me.save(); "
python go/manage.py makemigrations
python go/manage.py makemigrations go
...
...
@@ -16,3 +16,4 @@ python go/manage.py migrate
python go/manage.py createsuperuser
--noinput
--username
=
"
$SUPERUSER
"
--email
=
"
$SUPERUSER$GO_EMAIL_DOMAIN
"
echo
"
$GO_CREATE_SUPERUSER
"
| python go/manage.py shell
python go/manage.py runserver 0.0.0.0:8000
\ No newline at end of file
go/go/cas_callbacks.py
View file @
4a95d159
...
...
@@ -77,36 +77,29 @@ def create_user(tree: list):
Create a django user based off of the peoplefinder info we parsed earlier.
"""
print
(
"Parsing CAS information."
)
try
:
username
=
tree
[
0
][
0
].
text
user
,
user_created
=
User
.
objects
.
get_or_create
(
username
=
username
)
except
Exception
as
ex
:
print
(
"CAS callback unsuccessful:"
,
ex
)
# error handling in pfinfo function
info_name
=
pfinfo
(
username
)
# set and save the user's email
email_str
=
"%s%s"
%
(
username
,
settings
.
EMAIL_DOMAIN
)
# error handling in pfinfo function
info_name
=
pfinfo
(
username
)
user
,
user_created
=
User
.
objects
.
get_or_create
(
username
=
username
,
email
=
email_str
,
first_name
=
info_name
[
0
],
last_name
=
info_name
[
1
]
)
# Password is a required User object field, though doesn't matter for our
# purposes because all user auth is handled through CAS, not Django's login.
user
.
set_password
(
'cas_used_instead'
)
user
.
save
()
try
:
if
user_created
:
print
(
"Created user object %s."
%
username
)
# set and save the user's email
email_str
=
"%s%s"
%
(
username
,
settings
.
EMAIL_DOMAIN
)
user
.
email
=
email_str
# Password is a required User object field, though doesn't matter for our
# purposes because all user auth is handled through CAS, not Django's login.
user
.
set_password
(
'cas_used_instead'
)
user
.
save
()
print
(
"Added user's email, %s."
%
email_str
)
user
.
first_name
=
info_name
[
0
]
user
.
last_name
=
info_name
[
1
]
user
.
save
()
print
(
"Added user's name, %s %s."
%
(
info_name
[
0
],
info_name
[
1
]))
print
(
"User object creation process completed."
)
else
:
print
(
"User object already exists."
)
print
(
"CAS callback successful."
)
except
Exception
as
ex
:
print
(
"
Unhandled user creation error
:"
,
ex
)
print
(
"
CAS callback unsuccessful
:"
,
ex
)
go/go/models.py
View file @
4a95d159
...
...
@@ -90,7 +90,7 @@ def handle_reguser_creation(sender, instance, created, **kwargs):
is called to create an associated RegisteredUser.
"""
if
created
:
RegisteredUser
.
objects
.
create
(
user
=
instance
)
RegisteredUser
.
objects
.
create
(
user
=
instance
,
full_name
=
instance
.
get_full_name
()
)
@
receiver
(
post_save
,
sender
=
settings
.
AUTH_USER_MODEL
)
def
create_auth_token
(
sender
,
instance
=
None
,
created
=
False
,
**
kwargs
):
...
...
go/go/serializers.py
View file @
4a95d159
...
...
@@ -3,16 +3,27 @@ go/serializers.py
Define how data is translated from the database to json/API representation.
"""
# Django Imports
from
django.contrib.auth.models
import
User
,
Group
# App Imports
from
.models
import
URL
,
RegisteredUser
# Third Party Imports
from
rest_framework
import
serializers
class
UserSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
User
fields
=
(
'url'
,
'username'
,
'email'
,
'groups'
)
fields
=
(
'url'
,
'username'
,
'email'
,
'first_name'
,
'last_name'
,
'is_staff'
)
class
RegisteredUserSerializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
RegisteredUser
fields
=
'__all__'
class
Group
Serializer
(
serializers
.
HyperlinkedModelSerializer
):
class
URL
Serializer
(
serializers
.
HyperlinkedModelSerializer
):
class
Meta
:
model
=
Group
fields
=
(
'url'
,
'name'
)
model
=
URL
fields
=
'__all__'
go/go/views.py
View file @
4a95d159
This diff is collapsed.
Click to expand it.
go/settings/urls.py
View file @
4a95d159
...
...
@@ -19,7 +19,6 @@ from rest_framework import routers
router
=
routers
.
DefaultRouter
()
router
.
register
(
r
'users'
,
views
.
UserViewSet
)
router
.
register
(
r
'groups'
,
views
.
GroupViewSet
)
router
.
register
(
r
'my'
,
views
.
URLViewSet
,
base_name
=
"my"
)
router
.
register
(
r
'registereduser'
,
views
.
RegisteredUserViewSet
)
...
...
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