예제 #1
0
def user_switcher_switch(request):
    try:
        um = UserManager(request)
        if um.switch_user():
            return redirect('/')
        else:
            return send_error(request, _('you can not switch this user'))
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('server error'))
예제 #2
0
def change_user_owner(request):
    try:
        um = UserManager(request)
        um.change_owner()
        return HttpResponse('200')
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
예제 #3
0
def unlock_user(request):
    if request.method == 'GET':
        uid = request.GET.get('u')
        if not uid:
            return redirect('/')
        try:
            um = UserManager(request)
            um.unlock_account()
            return redirect('/user/nav/?uid=%s' % uid)
        except RequestProcessException as e:
            return e.get_response()
        except Exception as e:
            logger.error(e.message or e.args)
            return send_error(request, _('system error'))
    else:
        return render(request, 'errors/AccessDenied.html')
예제 #4
0
def user_unset_dedicated(request):
    try:
        um = UserManager(request)
        um.get_single_pk(True)
        um.unset_dedicate()
        um.remove_from_dedicated_group()
        return HttpResponse('200')
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
예제 #5
0
 def get_all(self):
     """
     Get all system status
     @return: dict contains all status data
      @rtype: str
     """
     rqu = self.requester
     res = {}
     if rqu.has_perm('CRM.view_dashboard') and rqu.is_staff:
         res['dashboard'] = get_current_user_dashboard(rqu).filter(last_state=0).count()
         res['today_queue'] = get_today_jobs()
     if rqu.has_perm('CRM.accept_orders'):
         res['orders'] = EquipmentOrder.objects.filter(is_processing=False).count()
     if rqu.has_perm('CRM.view_online_users'):
         ibs = IBSManager()
         users = ibs.get_online_users_count()
         res['online_customers'] = users
     if rqu.has_perm('CRM.view_online_crm_users'):
         res['online_personnel'] = UserManager.get_online()
         res['total_personnel'] = UserManager.get_personnel_count()
     return json.dumps(list(res))
예제 #6
0
def user_set_company(request):
    try:
        um = UserManager(request)
        um.get_single_pk(True)
        um.set_company()
        return HttpResponse('200')
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
예제 #7
0
def update_user_comment_inline(request):
    try:
        um = UserManager(request)
        um.set_post()
        um.update_comment_inline()
        return HttpResponse('200')
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
예제 #8
0
def user_set_as_reseller(request):
    try:
        um = UserManager(request)
        um.create_reseller()
        um.add_to_reseller()
        return HttpResponse('200')
    except RequestProcessException as e:
        return e.get_response()
    except Exception as e:
        logger.error(e.message or e.args)
        return send_error(request, _('system error'))
예제 #9
0
def create_user_ajax(request):
    ia = check_ajax(request)
    um = UserManager(request)
    if request.method == 'POST':
        try:
            um.set_post()
            new_user = um.update()
            if request.user.is_superuser:
                if um.is_superuser:
                    um.set_personnel()
                    um.set_superuser()
                elif um.is_personnel or um.is_reseller:
                    um.set_personnel()
            if new_user.is_superuser:
                SuperUserCreatedEventHandler().fire(new_user, None,
                                                    request.user.pk, True)
            elif new_user.is_staff:
                StaffUserCreatedEventHandler().fire(new_user, None,
                                                    request.user.pk, True)
            if not new_user.is_active:
                InactiveAccountLoginEventHandler().fire(
                    new_user, None, request.user.pk, True)
            return HttpResponse(str(new_user.pk))
        except RequestProcessException as e:
            # um.roll_back()
            return e.get_response()
    if ia:
        return HttpResponseBadRequest(_('invalid method'))
    return render(request, 'errors/AccessDenied.html')
예제 #10
0
def edit_user_basics(request):
    u = request.user
    granted = False
    if u.is_staff or u.is_superuser:
        granted = True
    if request.method == 'GET':
        if granted:
            uid = request.GET.get('u')
        else:
            uid = u.pk
        try:
            user = User.objects.get(pk=uid)
            profile = UserProfile.objects.filter(user=uid).first()
            if not profile:
                profile = UserProfile()
            history = profile.history.all().order_by('-pk')[:5]
            return render(request, 'user/EditUserBasics.html', {
                'u': user,
                'profile': profile,
                'history': history,
            })
        except Exception as e:
            logger.error(e.message or e.args)
            return send_error(request, _('system error'))
    elif request.method == 'POST':
        um = UserManager(request)
        try:
            um.set_post()
            uid = um.create_profile().user_id
            if um.is_normal_user:
                update_ibs_user_from_crm(uid)
            elif um.is_company:
                um.set_company()
            if um.is_dedicate:
                um.set_dedicate()
            if request.user.is_superuser:
                if um.is_personnel:
                    um.unset_superuser()
                    um.set_personnel()
                elif um.is_superuser:
                    um.set_superuser()
            if um.is_personnel:
                if um.is_reseller:
                    um.create_reseller()
                else:
                    um.remove_reseller()
                if um.is_visitor:
                    um.create_visitor()
        except RequestProcessException as e:
            return e.get_response()
        except Exception as e:
            logger.error(e.message or e.args)
            return send_error(request, _('system error'))
        return HttpResponse('200')
    else:
        return render(request, 'errors/AccessDenied.html')