Commit 2047b90f authored by Gladys Forte's avatar Gladys Forte

{dev bugfix} added condition to delete user update if an app is not selected for access

parent 9dc0b4ff
......@@ -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(
......
......@@ -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'
'''
*********
......
......@@ -1460,8 +1460,8 @@ class AMSPrivilege(models.Model):
# on_delete=models.CASCADE,
# to_field='code'
# )
# asset_type = models.ForeignKey(
# AMSAssetType,
# asset_group = models.ForeignKey(
# AMSAssetGroup,
# 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
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment