Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
R
red-ci-cd
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
red-group-test
red-ci-cd
Commits
10ddff20
Commit
10ddff20
authored
Nov 12, 2019
by
John Red Medrano
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
when user is deleted it will also delete the record on UserHistory
parent
ab2eb4ec
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
123 additions
and
121 deletions
+123
-121
app/applicationlayer/management/account/views.py
app/applicationlayer/management/account/views.py
+123
-121
No files found.
app/applicationlayer/management/account/views.py
View file @
10ddff20
...
@@ -150,6 +150,8 @@ class UserViewSet(viewsets.ModelViewSet):
...
@@ -150,6 +150,8 @@ class UserViewSet(viewsets.ModelViewSet):
instance
=
self
.
get_object
()
instance
=
self
.
get_object
()
new_instance
=
model_to_dict
(
instance
)
new_instance
=
model_to_dict
(
instance
)
UserHistory
.
objects
.
filter
(
username
=
instance
.
username
)
.
delete
()
AllowedCompany
.
objects
.
filter
(
id_number
=
instance
.
code
)
.
delete
()
self
.
perform_destroy
(
instance
)
self
.
perform_destroy
(
instance
)
log_save
(
log_save
(
...
@@ -250,141 +252,141 @@ class UserViewSet(viewsets.ModelViewSet):
...
@@ -250,141 +252,141 @@ class UserViewSet(viewsets.ModelViewSet):
email_users
=
[]
email_users
=
[]
for
data
,
keys
in
df
.
iterrows
():
for
data
,
keys
in
df
.
iterrows
():
# try:
try
:
user_department
=
Department
.
objects
.
filter
(
Q
(
name__icontains
=
keys
[
'department'
])
&
Q
(
company__name__icontains
=
logged_user_company
)
)
.
first
()
if
logged_user_type
==
'CUA'
:
user_department
=
Department
.
objects
.
filter
(
user_department
=
Department
.
objects
.
filter
(
Q
(
name__icontains
=
keys
[
'department'
])
&
Q
(
name__icontains
=
keys
[
'department'
])
&
Q
(
company__name__icontains
=
logged_user_company
)
Q
(
company__name__icontains
=
logged_user_company
)
)
.
first
()
)
.
first
()
if
user_department
==
None
:
if
logged_user_type
==
'CUA'
:
msg
=
f
"company is not the same with the logged user at row {data + 2}"
user_department
=
Department
.
objects
.
filter
(
return
Response
(
Q
(
name__icontains
=
keys
[
'department'
])
&
{
"message"
:
msg
},
Q
(
company__name__icontains
=
logged_user_company
)
status
=
status
.
HTTP_400_BAD_REQUEST
)
.
first
()
)
if
user_department
==
None
:
elif
logged_user_type
==
'DUA'
:
msg
=
f
"company is not the same with the logged user at row {data + 2}"
user_department
=
Department
.
objects
.
get
(
return
Response
(
name__icontains
=
logged_user_department
{
"message"
:
msg
},
)
elif
logged_user_type
==
'USR'
:
return
Response
(
{
"message"
:
"Logged User is not allowed"
},
status
=
status
.
HTTP_400_BAD_REQUEST
status
=
status
.
HTTP_400_BAD_REQUEST
)
)
else
:
elif
logged_user_type
==
'DUA'
:
user_department
=
Department
.
objects
.
get
(
user_department
=
Department
.
objects
.
get
(
name__icontains
=
keys
[
'department'
]
name__icontains
=
logged_user_department
)
elif
logged_user_type
==
'USR'
:
return
Response
(
{
"message"
:
"Logged User is not allowed"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
else
:
user_department
=
Department
.
objects
.
get
(
name__icontains
=
keys
[
'department'
]
)
default_app
=
Application
.
objects
.
filter
(
excel_code
=
keys
[
'default_app'
]
)
.
first
()
enums_super
=
enums
.
UserTypeEnum
.
SUPER_USER
.
value
enums_OUA
=
enums
.
UserTypeEnum
.
OVERALL_USER_ADMIN
.
value
enums_company
=
enums
.
UserTypeEnum
.
COMPANY_USER_ADMIN
.
value
enums_department
=
enums
.
UserTypeEnum
.
DEPARTMENT_USER_ADMIN
.
value
enums_user
=
enums
.
UserTypeEnum
.
USER
.
value
if
keys
[
'user_type'
]
.
lower
()
==
'super user'
and
logged_user_type
==
enums_super
:
user_type
=
enums
.
UserTypeEnum
.
SUPER_USER
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'super user'
and
logged_user_type
!=
enums_super
:
return
Response
(
{
"message"
:
f
"This user is not allowed to create super user. data error at row {data + 2}"
},
status
=
status
.
HTTP_201_CREATED
)
elif
keys
[
'user_type'
]
.
lower
()
==
'overall user admin'
:
user_type
=
enums
.
UserTypeEnum
.
OVERALL_USER_ADMIN
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'company user admin'
:
user_type
=
enums
.
UserTypeEnum
.
COMPANY_USER_ADMIN
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'department user admin'
:
user_type
=
enums
.
UserTypeEnum
.
DEPARTMENT_USER_ADMIN
.
value
else
:
user_type
=
enums
.
UserTypeEnum
.
USER
.
value
users
=
{
"username"
:
keys
[
'username'
],
"name"
:
keys
[
'name'
],
"department"
:
user_department
,
"email"
:
keys
[
'email'
],
"contact_no"
:
keys
[
'contact_no'
],
"default_app"
:
default_app
,
"user_type"
:
user_type
}
current_user
=
User
.
objects
.
create
(
**
users
)
)
default_app
=
Application
.
objects
.
filter
(
password
=
User
.
objects
.
make_random_password
(
length
=
10
)
excel_code
=
keys
[
'default_app'
]
password_hash
=
make_password
(
password
)
)
.
first
()
current_user
.
password
=
password_hash
current_user
.
save
()
enums_super
=
enums
.
UserTypeEnum
.
SUPER_USER
.
value
app
=
Application
.
objects
.
filter
(
enums_OUA
=
enums
.
UserTypeEnum
.
OVERALL_USER_ADMIN
.
value
excel_code__in
=
keys
[
'application'
]
.
split
(
','
)
enums_company
=
enums
.
UserTypeEnum
.
COMPANY_USER_ADMIN
.
value
)
enums_department
=
enums
.
UserTypeEnum
.
DEPARTMENT_USER_ADMIN
.
value
enums_user
=
enums
.
UserTypeEnum
.
USER
.
value
if
keys
[
'user_type'
]
.
lower
()
==
'super user'
and
logged_user_type
==
enums_super
:
update_user
=
current_user
.
application
.
set
(
app
)
user_type
=
enums
.
UserTypeEnum
.
SUPER_USER
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'super user'
and
logged_user_type
!=
enums_super
:
for
instance
in
keys
[
'privilege'
]
.
split
(
';'
):
privilege_list
=
instance
.
split
(
','
)
this_company
=
Company
.
objects
.
filter
(
name__icontains
=
privilege_list
[
0
]
)
.
first
()
this_department
=
Department
.
objects
.
filter
(
name__icontains
=
privilege_list
[
1
]
)
.
first
()
if
privilege_list
[
2
]
==
0
:
privilege_list
[
2
]
=
False
else
:
privilege_list
[
2
]
=
True
if
privilege_list
[
3
]
==
0
:
privilege_list
[
3
]
=
False
else
:
privilege_list
[
3
]
=
True
if
privilege_list
[
4
]
==
0
:
privilege_list
[
4
]
=
False
else
:
privilege_list
[
4
]
=
True
current_user
=
User
.
objects
.
get
(
id
=
current_user
.
id
)
try
:
privilege_object
=
{
"id_number"
:
current_user
,
"company_pivot"
:
this_company
,
"group_pivots"
:
this_department
,
"create_change_request"
:
privilege_list
[
2
],
"create_change_request_template"
:
privilege_list
[
3
],
"view_all_change_request"
:
privilege_list
[
4
],
"approve_cr"
:
privilege_list
[
5
]
}
AllowedCompany
.
objects
.
create
(
**
privilege_object
)
except
IntegrityError
as
e
:
return
Response
(
{
"message"
:
f
"Duplicate user privilege at row {data + 2}"
},
status
=
status
.
HTTP_201_CREATED
)
except
IntegrityError
as
e
:
return
Response
(
return
Response
(
{
"message"
:
f
"
This user is not allowed to create super user. data error
at row {data + 2}"
},
{
"message"
:
f
"
Record already exist
at row {data + 2}"
},
status
=
status
.
HTTP_201_CREATED
status
=
status
.
HTTP_201_CREATED
)
)
elif
keys
[
'user_type'
]
.
lower
()
==
'overall user admin'
:
user_type
=
enums
.
UserTypeEnum
.
OVERALL_USER_ADMIN
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'company user admin'
:
user_type
=
enums
.
UserTypeEnum
.
COMPANY_USER_ADMIN
.
value
elif
keys
[
'user_type'
]
.
lower
()
==
'department user admin'
:
user_type
=
enums
.
UserTypeEnum
.
DEPARTMENT_USER_ADMIN
.
value
else
:
user_type
=
enums
.
UserTypeEnum
.
USER
.
value
users
=
{
"username"
:
keys
[
'username'
],
"name"
:
keys
[
'name'
],
"department"
:
user_department
,
"email"
:
keys
[
'email'
],
"contact_no"
:
keys
[
'contact_no'
],
"default_app"
:
default_app
,
"user_type"
:
user_type
}
current_user
=
User
.
objects
.
create
(
**
users
)
password
=
User
.
objects
.
make_random_password
(
length
=
10
)
password_hash
=
make_password
(
password
)
current_user
.
password
=
password_hash
current_user
.
save
()
app
=
Application
.
objects
.
filter
(
excel_code__in
=
keys
[
'application'
]
.
split
(
','
)
)
update_user
=
current_user
.
application
.
set
(
app
)
for
instance
in
keys
[
'privilege'
]
.
split
(
';'
):
privilege_list
=
instance
.
split
(
','
)
this_company
=
Company
.
objects
.
filter
(
name__icontains
=
privilege_list
[
0
]
)
.
first
()
this_department
=
Department
.
objects
.
filter
(
name__icontains
=
privilege_list
[
1
]
)
.
first
()
if
privilege_list
[
2
]
==
0
:
except
KeyError
as
e
:
privilege_list
[
2
]
=
False
return
Response
(
else
:
{
"message"
:
"Missing column user_type"
},
privilege_list
[
2
]
=
True
status
=
status
.
HTTP_201_CREATED
)
if
privilege_list
[
3
]
==
0
:
privilege_list
[
3
]
=
False
else
:
privilege_list
[
3
]
=
True
if
privilege_list
[
4
]
==
0
:
privilege_list
[
4
]
=
False
else
:
privilege_list
[
4
]
=
True
current_user
=
User
.
objects
.
get
(
id
=
current_user
.
id
)
# try:
privilege_object
=
{
"id_number"
:
current_user
,
"company_pivot"
:
this_company
,
"group_pivots"
:
this_department
,
"create_change_request"
:
privilege_list
[
2
],
"create_change_request_template"
:
privilege_list
[
3
],
"view_all_change_request"
:
privilege_list
[
4
],
"approve_cr"
:
privilege_list
[
5
]
}
AllowedCompany
.
objects
.
create
(
**
privilege_object
)
# except IntegrityError as e:
# return Response(
# {"message": f"Duplicate user privilege at row {data + 2}"},
# status=status.HTTP_201_CREATED
# )
# except IntegrityError as e:
# return Response(
# {"message": f"Record already exist at row {data + 2}"},
# status=status.HTTP_201_CREATED
# )
# except KeyError as e:
# return Response(
# {"message": "Missing column user_type"},
# status=status.HTTP_201_CREATED
# )
del
users
[
'department'
]
del
users
[
'department'
]
del
users
[
'contact_no'
]
del
users
[
'contact_no'
]
...
...
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