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
2047b90f
Commit
2047b90f
authored
Mar 11, 2020
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
{dev bugfix} added condition to delete user update if an app is not selected for access
parent
9dc0b4ff
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
252 additions
and
11 deletions
+252
-11
app/applicationlayer/management/account/views.py
app/applicationlayer/management/account/views.py
+22
-7
app/entities/enums.py
app/entities/enums.py
+5
-1
app/entities/models.py
app/entities/models.py
+219
-2
env.new_template.ini
env.new_template.ini
+6
-1
No files found.
app/applicationlayer/management/account/views.py
View file @
2047b90f
...
...
@@ -17,7 +17,8 @@ from app.applicationlayer.utils import model_to_dict
from
app.entities.models
import
(
User
,
EntityLog
,
PasswordReset
,
Application
,
UserImage
,
ChangeRequestFormHeader
,
ChangeRequestTemplateHeader
,
AllowedCompany
,
Company
,
Department
,
UserHistory
AllowedCompany
,
Company
,
Department
,
UserHistory
,
AMSPrivilege
)
from
django.contrib.auth.hashers
import
make_password
...
...
@@ -32,6 +33,12 @@ from app.applicationlayer.utils import (
CustomPagination
,
status_message_response
,
log_save
,
main_threading
)
import
os
import
configparser
config
=
configparser
.
ConfigParser
()
config_file
=
os
.
path
.
join
(
'./'
,
'env.ini'
)
config
.
read
(
config_file
)
class
UserViewSet
(
viewsets
.
ModelViewSet
):
...
...
@@ -181,7 +188,6 @@ class UserViewSet(viewsets.ModelViewSet):
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
cms_form
=
ChangeRequestFormHeader
.
objects
.
filter
(
Q
(
frm_approvers__user__code
=
instance
.
code
)
|
Q
(
frm_stakes__user__code
=
instance
.
code
)
|
...
...
@@ -191,10 +197,10 @@ class UserViewSet(viewsets.ModelViewSet):
cms_template
=
ChangeRequestTemplateHeader
.
objects
.
filter
(
Q
(
created_by_user__code
=
instance
.
code
)
|
Q
(
requested_to_user__code
=
instance
.
code
)
Q
(
requested_to_user__code
=
instance
.
code
)
)
if
instance
.
department
.
code
!=
request
.
data
[
'department'
]:
if
cms_form
.
count
()
>
0
or
cms_template
.
count
()
>
0
:
error
=
'Cannot update this record the user has a record on change request it might cause a data error'
...
...
@@ -220,16 +226,25 @@ class UserViewSet(viewsets.ModelViewSet):
rms
=
Application
.
objects
.
filter
(
id
=
1
)
.
values
(
'code'
)
.
first
()
app
.
append
(
rms
[
'code'
])
app
=
Application
.
objects
.
filter
(
app
_data
=
Application
.
objects
.
filter
(
code__in
=
app
)
if
not
config
[
'APPLICATION_CODE'
][
'AMS'
]
in
app
:
ams_priv
=
AMSPrivilege
.
objects
.
filter
(
id_number
=
instance
.
code
)
.
delete
()
if
not
config
[
'APPLICATION_CODE'
][
'CMS'
]
in
app
:
cms_priv
=
AllowedCompany
.
objects
.
filter
(
id_number
=
instance
.
code
)
.
delete
()
instance
=
User
.
objects
.
get
(
id
=
serializer
.
data
[
'id'
]
)
instance
.
application
.
set
(
app
)
instance
.
application
.
set
(
app_data
)
new_instance
=
serializer
.
data
log_save
(
...
...
app/entities/enums.py
View file @
2047b90f
...
...
@@ -31,13 +31,17 @@ class GenerateCode(Enum):
FORM_DETAIL
=
'FRMDETAIL'
ETL
=
'ETL'
# ASSET_GROUP = 'AMSGRP'
CMS_SETTINGS
=
"CMSSET"
ASSET_TYPE
=
'ASSTTYPE'
ASSET
=
'ASST'
ASSET_STOCK
=
'ASSTSTOCK'
ASSET_GROUP
=
'ASSTGRP'
ASSET_STOCK_SUPPORT
=
'ASSTSTOCKSUP'
REPORT_TYPE
=
'RPTTYPE'
REPORT
=
'RPT'
FORM_ASSET
=
'FRMASSET'
'''
*********
...
...
app/entities/models.py
View file @
2047b90f
...
...
@@ -1460,8 +1460,8 @@ class AMSPrivilege(models.Model):
# on_delete=models.CASCADE,
# to_field='code'
# )
# asset_
type
= models.ForeignKey(
# AMSAsset
Type
,
# asset_
group
= models.ForeignKey(
# AMSAsset
Group
,
# on_delete=models.CASCADE,
# to_field='code'
# )
...
...
@@ -1485,3 +1485,220 @@ class AMSPrivilege(models.Model):
# self.save()
# class AMSAssetStockSupport(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# start_date = models.DateTimeField(
# null=True,
# blank=True)
# end_date = models.DateTimeField(
# null=True,
# blank=True)
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_asset_stock_created_by'
# )
# asset_stock = models.ForeignKey(
# AMSAssetStock,
# on_delete=models.CASCADE,
# to_field='code'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'ams_asset_stock_supports'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSAssetStockSupport, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.ASSET_STOCK_SUPPORT.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class AMSReportType(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# description = models.CharField(
# blank=True,
# null=True,
# max_length=255)
# dynamic_field = models.TextField(
# blank=True,
# null=True
# )
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_report_type_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'ams_report_types'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSReportType, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.REPORT_TYPE.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class AMSReport(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# dynamic_field = models.TextField(
# blank=True,
# null=True
# )
# report_type = models.ForeignKey(
# AMSReportType,
# on_delete=models.CASCADE,
# to_field='code'
# )
# asset_stock = models.ForeignKey(
# AMSAssetStock,
# on_delete=models.CASCADE,
# to_field='code'
# )
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_report_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'ams_reports'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSReport, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.REPORT.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class AMSAuditTrail(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# name = models.CharField(
# unique=True,
# max_length=255)
# description = models.CharField(
# blank=True,
# null=True,
# max_length=255)
# asset_stock = models.ForeignKey(
# AMSAssetStock,
# on_delete=models.CASCADE,
# to_field='code'
# )
# created_by = models.ForeignKey(
# User,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='ams_audit_trail_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'ams_audit_trail'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(AMSReport, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.REPORT.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
# class ChangeRequestFormAssets(models.Model):
# code = models.CharField(
# unique=True,
# max_length=255)
# form_code = models.ForeignKey(
# ChangeRequestFormHeader,
# on_delete=models.PROTECT,
# to_field='form_code',
# related_name='frm_approvers')
# asset_stock = models.ForeignKey(
# AMSAssetStock,
# on_delete=models.CASCADE,
# to_field='code'
# )
# created_by = models.ForeignKey(
# AMSUser,
# on_delete=models.CASCADE,
# to_field='code',
# related_name='cms_form_assets_created_by'
# )
# created = models.DateTimeField(auto_now_add=True)
# deleted_at = models.DateTimeField(null=True, blank=True)
# class Meta:
# db_table = 'change_request_form_assets'
# ordering = ['-created']
# def __str__(self):
# return f'{self.code}'
# def save(self, *args, **kwargs):
# super(ChangeRequestFormAssets, self).save(*args, **kwargs)
# code = number_generator(enums.GenerateCode.FORM_ASSET.value, self.id)
# if self.code == '':
# self.code = code
# self.created = datetime.now()
# self.save()
\ No newline at end of file
env.new_template.ini
View file @
2047b90f
...
...
@@ -22,7 +22,6 @@ cluster = api
cms_notification
=
cms_notification
[NOTIFICATION_EMAIL]
APPROVER_MESSAGE
=
has sent you an APPROVAL REQUEST for change request;RMS-ACTIONREQUIRED
REQUESTOR_MESSAGE
=
has APPROVED the change request;RMS-CRAPPROVED
...
...
@@ -35,3 +34,9 @@ VENDOR_REJECT_MESSAGE = has REJECTED the change request;RMS-CRREJECTED-VENDOR
REVISED_MESSAGE
=
has REJECTED the change request for your revision;RMS-CRREVISED
CANCEL_MESSAGE
=
has CANCELLED the change request;RMS-CRCANCELLED-USERTRIGGER
APPROVER_REJECT_MESSAGE
=
has REJECTED the change request for your approval;RMS-CRREJECTED-APPROVER
[APPLICATION_CODE]
RMS
=
APP-20190923-0000001
CMS
=
APP-20190923-0000002
AMS
=
APP-20190923-0000003
\ No newline at end of file
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