Exemple #1
0
def project_user_modify(request, id):
    '''
    @author: Xieyz
    @note: 项目用户修改
    :return: UserChangeForm表单
    '''
    obj = project_user.objects.get(id=id)
    if request.method == "POST":
        change = UserChangeForm(request.POST, instance=obj)
        if not request.POST.get('project'):
            messages.add_message(request, messages.ERROR, '请选择项目!')
            return render(request, 'usercenter/project_user_change.html',
                          {'form': change})
        if change.is_valid():
            data = change.cleaned_data

            # 更新日志
            update_logs = UserChangeLogs()
            update_logs.user_id = id
            update_logs.content = get_name_by_id.get_name(
                request.user.id) + '修改了用户的信息'
            change.save()
            update_logs.save()

            messages.add_message(
                request, messages.SUCCESS,
                '修改用户"' + data.get('user_name') + '"的信息,修改成功!')
            return HttpResponseRedirect(reverse('user_manage'))
        else:
            messages.add_message(request, messages.ERROR, change.errors)
            return render(request, 'usercenter/project_user_change.html',
                          {'form': change})
    else:
        form = UserChangeForm(instance=obj)
    return render(request, 'usercenter/project_user_change.html', locals())
Exemple #2
0
def get_all_user():
    result = []
    try:
        obj = User.objects.all().filter(is_staff=1, is_active=1)
        for i in obj:
            result.append({
                'value': i.id,
                'name': get_name_by_id.get_name(i.id)
            })
    except:
        result = [{'value': '', 'name': '无'}]
    return result
Exemple #3
0
def project_group_user_change(request, gid):
    '''
        @author: Xieyz
        @note: 用户添加或移出组
        :param request:
        :param gid: 组id
        :return:
        '''
    if request.method == "POST":
        modify_user_list = request.POST.getlist('doublebox')
        reduce_user = []
        increase_user = []
        old_user = user_group.objects.filter(group_id=gid).values_list(
            'user_name_id', flat=True)
        new_user = [int(i) for i in modify_user_list]
        difference_list = list(set(old_user) ^ set(new_user))
        if not difference_list:
            messages.add_message(request, messages.ERROR, '未作出任何修改!')
            return HttpResponseRedirect(
                reverse('project_authority_group_user_list', args=[
                    gid,
                ]))
        for difference in difference_list:
            if difference in old_user:
                user_group.objects.filter(user_name_id=difference,
                                          group_id=gid).delete()
                reduce_user.append(
                    str(project_user.objects.get(id=difference).user_name) +
                    "<" + str(project_user.objects.get(id=difference).name) +
                    ">")
            else:
                add_user_group = user_group()
                add_user_group.group_id = gid
                add_user_group.user_name_id = difference
                add_user_group.save()
                increase_user.append(
                    str(project_user.objects.get(id=difference).user_name) +
                    "<" + str(project_user.objects.get(id=difference).name) +
                    ">")
        # 更新日志
        content_dict = {'添加用户': increase_user, '移出用户': reduce_user}
        update_logs = AuthorityGroupChangeLogs()
        update_logs.group_id = gid
        update_logs.user_id = request.user.id
        update_logs.content = get_name_by_id.get_name(
            request.user.id) + '操作: ' + str(content_dict)
        update_logs.save()
        messages.add_message(request, messages.SUCCESS, '操作成功!')
        return HttpResponseRedirect(
            reverse('project_authority_group_user_list', args=[
                gid,
            ]))
Exemple #4
0
def project_user_change_status(request, id, is_active):
    try:
        project_user.objects.filter(id=id).update(is_active=is_active)
        # 更新用户日志
        display = ''
        if is_active == 1:
            display = '启用'
        elif is_active == 0:
            display = '禁用'
        update_userlogs = UserChangeLogs()
        update_userlogs.user_id = id
        update_userlogs.content = get_name_by_id.get_name(
            request.user.id) + '修改用户状态为' + display
        update_userlogs.save()
        return JsonResponse({'result': 'true', 'project_user_id': id})
    except:
        return JsonResponse({'result': 'false'})
Exemple #5
0
    def sqlalert_apply(self):
        sql_alert = SQLAlert.objects.get(id=self.detail_id)
        project_manager_id = SQLAlert.objects.only('project').get(id=self.detail_id).project.project_manager.id
        build_message(
            **{'message_title': '申请「数据预警SQL」成功',
               'message_content': '申请「' + sql_alert.title + '」成功',
               'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/',
               'message_user': sql_alert.applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条「数据预警SQL」申请需要您审批',
               'message_content': get_name_by_id.get_name(sql_alert.applicant.id) + '申请了「' + sql_alert.title + '」, 下一步(项目经理审批)需要您去审批!',
               'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/',
               'message_user': project_manager_id,
               'type': '审批'
               }
        )
Exemple #6
0
def cron_send_ops_message():
    """
    :return:
    """
    from workflow.get_name_by_id import get_name_by_id
    worksheet_obj = WorkSheet.objects.filter(status=2)

    for user in worksheet_obj:
        if user.is_delay:
            pm_message = get_name_by_id.get_name(
                user.operator_id
            ) + '有一条待办工单<div class="highlight">已延期</div>,请协助督促处理!'
            message = '你有一条待办工单<div class="highlight">已延期</div>,请前往运维平台处理!'
            send_operator_wechat_message(user.id, message)
            send_pm_wechat_message(user.id, pm_message)

        else:
            message = '你有一条待办工单,请前往运维平台处理!'
            send_operator_wechat_message(user.id, message)
Exemple #7
0
    def database_release_apply(self):
        applicant = Application.objects.only('appliant').get(id=self.detail_id).appliant
        project_manager_id = Application.objects.only('project').get(id=self.detail_id).project.project_manager.id
        build_message(
            **{'message_title': '申请「数据库变更」成功',
               'message_content': '申请「数据库变更」成功',
               'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id),
               'message_user': applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条「数据库变更」申请需要您审批',
               'message_content': get_name_by_id.get_name(applicant.id) + '申请了「数据库变更」, 下一步(项目经理审批)需要您去审批!',
               'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id),
               'message_user': project_manager_id,
               'type': '审批'
               }
        )
Exemple #8
0
    def cron_apply(self):
        applicant = cronflow.objects.only('applicant').get(id=self.detail_id).applicant
        project_manager_id = cronflow.objects.only('project').get(id=self.detail_id).project.project_manager.id

        build_message(
            **{'message_title': '申请「计划任务变更」成功',
               'message_content': '申请「计划任务变更」成功',
               'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id),
               'message_user': applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条申请「计划任务变更」工作流需要您审批',
               'message_content': get_name_by_id.get_name(applicant.id) + '申请了「计划任务变更」, (项目经理审批)需要您去审批!',
               'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id),
               'message_user': project_manager_id,
               'type': '审批'
               }
        )
Exemple #9
0
    def project_create(self):
        applicant = project.objects.only('applicant').get(id=self.detail_id).applicant
        project_manager_id = project.objects.only('project_manager').get(id=self.detail_id).project_manager.id
        build_message(
            **{'message_title': '申请「项目创建」成功',
               'message_content': '申请「项目创建」成功',
               'message_url': '/flow/project_manage/project_details/' + str(self.detail_id),
               'message_user': applicant.id
            }
        )

        build_message(
            **{'message_title': '有一条「项目创建」工作流需要您审批',
               'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目创建」, 下一步(项目经理审批)需要您去审批!',
               'message_url': '/flow/project_manage/project_details/' + str(self.detail_id),
               'message_user': project_manager_id,
               'type': '审批'

            }
        )
Exemple #10
0
    def migration_apply(self):
        migration = DataMigrate.objects.get(id=self.detail_id)
        project_manager_id = DataMigrate.objects.only('project').get(id=self.detail_id).project.project_manager.id
        build_message(
            **{'message_title': '申请「数据迁移」成功',
               'message_content': '申请「' + migration.title + '」成功',
               'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/',
               'message_user': migration.applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条「数据迁移」申请需要您审批',
               'message_content': get_name_by_id.get_name(
                   migration.applicant.id) + '申请了「' + migration.title + '」, 下一步(项目经理审批)需要您去审批!',
               'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/',
               'message_user': project_manager_id,
               'type': '审批'
               }
        )
Exemple #11
0
 def project_release_apply_approval(self):
     applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant
     if self.adopt == '通过':
         project_manager_id = project_releaseflow.objects.only('project').get(
             id=self.detail_id).project.project_manager.id
         build_message(
             **{'message_title': '有一条「项目变更」工作流需要您审批',
                'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目变更」, 下一步(项目经理审批)需要您去审批!',
                'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
                'message_user': project_manager_id,
                'type': '审批'
                }
         )
     elif self.adopt == '不通过':
         build_message(
             **{'message_title': '您申请的「项目变更」审批不通过',
                'message_content': '您申请的「项目变更」审批不通过',
                'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
                'message_user': applicant.id
                }
         )
Exemple #12
0
    def project_user_release_apply(self):
        applicant = ProjectUserApplyFlow.objects.only('submitter').get(id=self.detail_id).submitter
        depart_director_id = ProjectUserApplyFlow.objects.only('department').get(
            id=self.detail_id).department.depart_director_id

        build_message(
            **{'message_title': '申请「业务用户变更」成功',
               'message_content': '申请「业务用户变更」成功',
               'message_url': '/flow/user_apply_list/user_apply_details/' + str(self.detail_id),
               'message_user': applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条申请「业务用户变更」工作流需要您审批',
               'message_content': get_name_by_id.get_name(applicant.id) + '申请了「业务用户变更」, (部门负责人审批)需要您去审批!',
               'message_url': '/flow/user_apply_list/user_apply_details/' + str(self.detail_id),
               'message_user': depart_director_id,
               'type': '审批'
               }
        )
Exemple #13
0
 def project_create_approval(self):
     applicant = project.objects.only('applicant').get(id=self.detail_id).applicant
     if self.adopt == '通过':
         userList = Group.objects.get(name=self.sector).user_set.all()
         for sector_user_id in userList:
             build_message(
                 **{'message_title': '有一条「项目创建」工作流需要您审批',
                    'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目创建」工作流, 下一步('+ self.sector +'审批)需要您去审批!',
                    'message_url': '/flow/project_manage/project_details/' + str(self.detail_id),
                    'message_user': sector_user_id.id,
                     'type': '审批'
                 }
             )
     elif self.adopt == '不通过':
         build_message(
             **{'message_title': '您申请的「项目创建」审批不通过',
                'message_content': '您申请的「项目创建」审批不通过',
                'message_url': '/flow/project_manage/project_details/' + str(self.detail_id),
                'message_user': applicant.id
                }
         )
Exemple #14
0
    def project_user_authority_release_apply(self):
        applicant = authority_flow.objects.only('applicant').get(id=self.detail_id).applicant
        depart_director_id = authority_flow.objects.only('department').get(
            id=self.detail_id).department.depart_director_id

        build_message(
            **{'message_title': '申请「业务用户权限变更」成功',
               'message_content': '申请「业务用户权限变更」成功',
               'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id),
               'message_user': applicant.id
               }
        )

        build_message(
            **{'message_title': '有一条申请「业务用户权限变更」工作流需要您审批',
               'message_content': get_name_by_id.get_name(applicant.id) + '申请了业务用户权限变更, (部门负责人审批)需要您去审批!',
               'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id),
               'message_user': depart_director_id,
               'type': '审批'
               }
        )
Exemple #15
0
 def database_release_apply_approval(self):
     applicant = Application.objects.only('appliant').get(id=self.detail_id).appliant
     if self.adopt == '通过':
         userList = Group.objects.get(name=self.sector).user_set.all()
         for sector_user_id in userList:
             build_message(
                 **{'message_title': '有一条「数据库变更」申请需要您审批',
                    'message_content': get_name_by_id.get_name(
                        applicant.id) + '申请了「数据库变更」, 下一步(' + self.sector + '审批)需要您去审批!',
                    'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id),
                    'message_user': sector_user_id.id,
                    'type': '审批'
                    }
             )
     elif self.adopt == '不通过':
         build_message(
             **{'message_title': '您申请的「数据库变更」审批不通过',
                'message_content': '您申请的「数据库变更」审批不通过',
                'message_url': '/database/instance/release_flow/release_detail/' + str(self.detail_id),
                'message_user': applicant.id
                }
         )
Exemple #16
0
 def migration_approval(self):
     migration = DataMigrate.objects.get(id=self.detail_id)
     if self.adopt == '通过':
         userList = Group.objects.get(name=self.sector).user_set.all()
         for sector_user_id in userList:
             build_message(
                 **{'message_title': '有一条「数据迁移」申请需要您审批',
                    'message_content': get_name_by_id.get_name(
                        migration.applicant.id) + '申请了「' + migration.title + '」, 下一步(' + self.sector + '审批)需要您去审批!',
                    'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/',
                    'message_user': sector_user_id.id,
                    'type': '审批'
                    }
             )
     elif self.adopt == '不通过':
         build_message(
             **{'message_title': '您申请的「数据迁移」审批不通过',
                'message_content': '您申请的「' + migration.title + '」审批不通过',
                'message_url': '/database/instance/datamigrate/release_detail/' + str(self.detail_id) + '/',
                'message_user': migration.applicant.id
                }
         )
Exemple #17
0
 def sqlalert_approval(self):
     sql_alert = SQLAlert.objects.get(id=self.detail_id)
     if self.adopt == '通过':
         userList = Group.objects.get(name=self.sector).user_set.all()
         for sector_user_id in userList:
             build_message(
                 **{'message_title': '有一条「数据预警SQL」申请需要您审批',
                    'message_content': get_name_by_id.get_name(
                        sql_alert.applicant.id) + '申请了「' + sql_alert.title + '」, 下一步(' + self.sector + '审批)需要您去审批!',
                    'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/',
                    'message_user': sector_user_id.id,
                    'type': '审批'
                    }
             )
     elif self.adopt == '不通过':
         build_message(
             **{'message_title': '您申请的「数据预警SQL」审批不通过',
                'message_content': '您申请的「' + sql_alert.title + '」审批不通过',
                'message_url': '/database/instance/sqlalert/release_detail/' + str(self.detail_id) + '/',
                'message_user': sql_alert.applicant.id
                }
         )
Exemple #18
0
 def project_release_apply(self):
     applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant
     build_message(
         **{'message_title': '申请「项目变更」成功',
            'message_content': '申请「项目变更」成功',
            'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
            'message_user': applicant.id
            }
     )
     try:
         project_id = project_releaseflow.objects.only('project').get(id=self.detail_id).project_id
         appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='测试人员').values_list('user_id',flat=True)
         for sector_user_id in appoint_user_list:
             build_message(
                 **{'message_title': '有一条「项目变更」工作流需要您测试审批',
                    'message_content': get_name_by_id.get_name(applicant.id) + '申请了「项目变更」工作流, 下一步(测试审批)需要您去审批!',
                    'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
                    'message_user': sector_user_id,
                    'type': '审批'
                    }
             )
     except:
         pass
Exemple #19
0
def project_user_add(request):
    '''
    @author: Xieyz
    @note: 项目用户添加
    :return: UserChangeForm表单
    '''
    if request.method == "POST":
        change = UserChangeForm(request.POST)
        if not request.POST.get('project'):
            messages.add_message(request, messages.ERROR, '请选择项目!')
            return render(request, 'usercenter/project_user_change.html',
                          {'form': change})
        if change.is_valid():
            data = change.cleaned_data
            change.save()

            # 更新日志
            try:
                update_logs = UserChangeLogs()
                update_logs.user_id = project_user.objects.only('id').get(
                    user_name=data.get('user_name'),
                    project_id=data.get('project')).id
                update_logs.content = get_name_by_id.get_name(
                    request.user.id) + '添加了新的用户'
                update_logs.save()
            except:
                pass
            messages.add_message(request, messages.SUCCESS,
                                 '添加用户"' + data.get('user_name') + '",添加成功!')
            return HttpResponseRedirect(reverse('user_manage'))
        else:
            messages.add_message(request, messages.ERROR, change.errors)
            return render(request, 'usercenter/project_user_change.html',
                          {'form': change})
    else:
        form = UserChangeForm()
    return render(request, 'usercenter/project_user_change.html', locals())
Exemple #20
0
 def cron_apply_approval_adopted(self):
     applicant = cronflow.objects.only('applicant').get(id=self.detail_id).applicant
     build_message(
         **{'message_title': '您申请的「计划任务变更」已经审批通过',
            'message_content': '您申请的「计划任务变更」已经审批通过',
            'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id),
            'message_user': applicant.id
            }
     )
     try:
         project_id = cronflow.objects.only('project').get(id=self.detail_id).project_id
         appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True)
         for sector_user_id in appoint_user_list:
             build_message(
                 **{'message_title': '有一条「计划任务变更」工作流需要您执行',
                    'message_content': get_name_by_id.get_name(applicant.id) +
                                       '申请了「计划任务变更」, 项目经理审批已经通过, 下一步需要您执行!',
                    'message_url': '/flow/cronflow_manage/cronflow_details/' + str(self.detail_id),
                    'message_user': sector_user_id,
                    'type': '执行'
                }
             )
     except:
         pass
Exemple #21
0
 def project_release_apply_approval_adopted(self):
     applicant = project_releaseflow.objects.only('applicant').get(id=self.detail_id).applicant
     build_message(
         **{'message_title': '您申请的「项目变更」已经审批通过, 等待执行变更',
            'message_content': '您申请的「项目变更」已经审批通过, 等待执行变更',
            'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
            'message_user': applicant.id
            }
     )
     try:
         project_id = project_releaseflow.objects.only('project').get(id=self.detail_id).project_id
         appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True)
         for sector_user_id in appoint_user_list:
             build_message(
                 **{'message_title': '「项目变更」等待您执行变更',
                    'message_content': get_name_by_id.get_name(applicant.id) +
                                       '申请了「项目变更」, 测试审批和项目经理审批已经通过, 下一步(执行)需要您执行变更!',
                    'message_url': '/flow/releaseflow_manage/releaseflow_details/' + str(self.detail_id),
                    'message_user': sector_user_id,
                    'type': '执行'
                    }
             )
     except:
         pass
Exemple #22
0
 def project_user_authority_release_apply_approval_adopted(self):
     applicant = authority_flow.objects.only('applicant').get(id=self.detail_id).applicant
     build_message(
         **{'message_title': '您申请的「业务用户权限变更」已经审批通过',
            'message_content': '您申请的「业务用户权限变更」已经审批通过',
            'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id),
            'message_user': applicant.id
            }
     )
     try:
         project_id = authority_flow.objects.only('project').get(id=self.detail_id).project_id
         appoint_user_list = project_group.objects.filter(project_id=project_id,user_type__name='运维人员').values_list('user_id',flat=True)
         for sector_user_id in appoint_user_list:
             build_message(
                 **{'message_title': '有一条「业务用户权限变更」需要您执行',
                    'message_content': get_name_by_id.get_name(applicant.id) +
                                       '申请了「业务用户权限变更」, 部门负责人审批已经通过, 下一步需要您执行!',
                    'message_url': '/flow/project_authority_manage/project_authority_details/' + str(self.detail_id),
                    'message_user': sector_user_id,
                    'type': '执行'
                }
             )
     except:
         pass
Exemple #23
0
def project_authority_group_add(request):
    '''
    @author: Xieyz
    @note: 项目权限组添加
    :return: AuthorityGroupForm表单
    '''
    if request.method == "POST":
        change = AuthorityGroupForm(request.POST)
        if not request.POST.get('project'):
            messages.add_message(request, messages.ERROR, '请选择项目!')
            type = 'add'
            return render(request,
                          'usercenter/project_authority_group_change.html', {
                              'form': change,
                              'type': type
                          })
        user_list = request.POST.getlist('doublebox')
        if change.is_valid():
            data = change.cleaned_data
            change.save()

            add_user_list = [int(i) for i in user_list]
            user_name_list = []
            if add_user_list:
                # 更新组和用户的关系表
                for user_id in add_user_list:
                    user_group_add = user_group()
                    user_group_add.group_id = authority_group.objects.only(
                        'id').get(group_name=data.get('group_name'),
                                  project=data.get('project')).id
                    user_group_add.user_name_id = user_id
                    user_group_add.save()

                    user_name_list.append(
                        project_user.objects.only('user_name').get(
                            id=user_id).user_name)
            # 更新日志
            update_logs = AuthorityGroupChangeLogs()
            update_logs.group_id = authority_group.objects.only('id').get(
                group_name=data.get('group_name')).id
            update_logs.user_id = request.user.id
            update_logs.content = get_name_by_id.get_name(
                request.user.id) + '添加了新的用户组, 包含用户:' + str(user_name_list)
            update_logs.save()

            messages.add_message(request, messages.SUCCESS,
                                 '添加用户组"' + data.get('group_name') + '",添加成功!')
            return HttpResponseRedirect(
                reverse('project_authority_group_list'))
        else:
            messages.add_message(request, messages.ERROR, change.errors)
            type = 'add'
            return render(request,
                          'usercenter/project_authority_group_change.html', {
                              'form': change,
                              'type': type
                          })
    else:
        form = AuthorityGroupForm()
        type = 'add'
    return render(request, 'usercenter/project_authority_group_change.html',
                  locals())