|  | # -*- coding: utf-8 -*-
from __future__ import division
from django_logit import logit
from django_response import response
from group.models import GroupUserInfo
from utils.admin_utils import is_group_admin
from utils.error.errno_utils import GroupStatusCode
@logit
def tg_group_admin_list_api(request):
    """ 旅行团管理员列表 """
    group_id = request.POST.get('group_id', '')
    admin_id = request.POST.get('admin_id', '')  # 导游唯一标识
    # 权限校验
    if not is_group_admin(group_id, admin_id):
        return response(GroupStatusCode.NOT_GROUP_ADMIN)
    admins = GroupUserInfo.objects.filter(group_id=group_id, subadmin=True, status=True)
    admins = [admin.admin_info for admin in admins]
    return response(200, 'Get Tour Guide Group Admin List Success', u'获取旅行团管理员列表成功', {
        'group_id': group_id,
        'admins': admins,
    })
@logit
def tg_group_admin_recovery_api(request):
    """ 旅行团管理员权限回收,管理员主动,团成员被动 """
    group_id = request.POST.get('group_id', '')
    admin_id = request.POST.get('admin_id', '')  # 导游唯一标识
    user_id = request.POST.get('user_id', '')
    # 权限校验
    if not is_group_admin(group_id, admin_id):
        return response(GroupStatusCode.NOT_GROUP_ADMIN)
    # 管理员也不允许将自己移除
    if admin_id == user_id:
        return response(GroupStatusCode.ADMIN_CANNOT_HANDLE_SELF)
    try:
        subadmin = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, subadmin=True, admin_status=True, status=True)
    except GroupUserInfo.DoesNotExist:
        return response(GroupStatusCode.NOT_GROUP_SUBADMIN)
    # 权限回收
    subadmin.admin_status = False
    subadmin.save()
    return response(200, 'Tour Guide Group Admin Right Recovery Success', u'旅行团管理员权限回收成功')
@logit
def tg_group_admin_waiver_api(request):
    """ 旅行团管理员权限放弃 """
    group_id = request.POST.get('group_id', '')
    user_id = request.POST.get('user_id', '')
    try:
        subadmin = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, subadmin=True, admin_status=True, status=True)
    except GroupUserInfo.DoesNotExist:
        return response(GroupStatusCode.NOT_GROUP_SUBADMIN)
    # 权限回收
    subadmin.admin_status = False
    subadmin.save()
    return response(200, 'Tour Guide Group Admin Right Waiver Success', u'旅行团管理员权限放弃成功')
 |