Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
go
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
21
Issues
21
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SRCT
go
Commits
4a95d159
Commit
4a95d159
authored
Jul 29, 2018
by
David Haynes
🙆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Outline of API in place
parent
d490f3bc
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
704 additions
and
674 deletions
+704
-674
docker-compose.yml
docker-compose.yml
+0
-1
docker-startup.sh
docker-startup.sh
+2
-1
go/go/cas_callbacks.py
go/go/cas_callbacks.py
+17
-24
go/go/models.py
go/go/models.py
+1
-1
go/go/serializers.py
go/go/serializers.py
+15
-4
go/go/views.py
go/go/views.py
+669
-642
go/settings/urls.py
go/settings/urls.py
+0
-1
No files found.
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