コード例 #1
0
ファイル: views.py プロジェクト: bbaobelief/neptune
def deploy_success(request, id):
    applyonline = get_object_or_404(ApplyOnline, pk=int(id))
    if request.POST:
        applyonline_desc = request.POST.get('applyonline_desc', None)
        if applyonline.applyonline_desc != None:
            applyonline.applyonline_desc += '\n' + applyonline_desc
        else:
            applyonline.applyonline_desc = applyonline_desc
        applyonline.status = 1
        applyonline.save()
        
        
        '''运维人员部署成功后向相关人员发送邮件提示,提醒相关人员进行验证'''
        subject = u'服务上线验证'
        to_mail_list = []
        if applyonline.apply_user != None and applyonline.apply_user != '':
            usernamelist = applyonline.apply_user.split(',')
            for username in usernamelist:
                username += '@autonavi.com'
                to_mail_list.append(username)
        # 定义邮件内容
        email = u"您好,服务部署成功,请进行相应的验证:"
        body = loader.render_to_string('applyonline/mail_deploy_success.html', {'email':email, 'applyonline':applyonline})
        send_mail(subject, body, from_email, to_mail_list, html="text/html")
        
        
        return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','applyonlineindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'操作成功'}), mimetype='application/json')
    return render_to_response('applyonline/deploy_success.html', {'applyonline':applyonline, 'applyonline_status_dict':applyonline_status_dict})        
コード例 #2
0
ファイル: views.py プロジェクト: bbaobelief/neptune
def validate_failure(request, id):
    applyonline = get_object_or_404(ApplyOnline, pk=int(id))
    if request.POST:
        applyonline_desc = request.POST.get('applyonline_desc', None)
        if applyonline.applyonline_desc != None:
            applyonline.applyonline_desc += '\n' + applyonline_desc
        else:
            applyonline.applyonline_desc = applyonline_desc
        applyonline.status = 3
        applyonline.save()
        
        '''申请人验证失败后向运维人员发送邮件提示'''
        subject = u'服务验证失败'
        to_mail_list = []
        if applyonline.apply_user != None and applyonline.apply_user != '':
            usernamelist = applyonline.apply_user.split(',')
            for username in usernamelist:
                username += '@autonavi.com'
                to_mail_list.append(username)
        # 定义邮件内容
        email = u"您好,服务验证失败,我会重新发一份申请单,请您重新部署:"
        body = loader.render_to_string('applyonline/mail_validate_failure.html', {'email':email, 'applyonline':applyonline})
        send_mail(subject, body, from_email, to_mail_list, html="text/html")
        
        return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','applyonlineindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'操作成功'}), mimetype='application/json')
    return render_to_response('applyonline/validate_failure.html', {'applyonline':applyonline, 'applyonline_status_dict':applyonline_status_dict})        
コード例 #3
0
def encode(img, msg, email):
    image = Image.open(img, 'r')

    if len(msg) == 0:
        raise ValueError('Data is empty')
    newimg = image.copy()
    encode_enc(newimg, msg)
    new_img_name = f"{img.split('.')[0]}_eng.png"
    print(new_img_name)
    newimg.save(new_img_name, str(new_img_name.split(".")[1].upper()))
    utils.send_mail(email, new_img_name)
コード例 #4
0
def main():
    mailmsg = ''
    global console
    console.setLevel(logging.INFO)
    os.chdir(relative_dir)
    start_msg = 'Beginning PDF storing run: all is %r, repo_code is %r , from is %r, to is %r' % (
        all, repo_code, efrom, eto)
    main_log.info(start_msg)
    mail_msg = datetime.now().strftime(
        DATEFORMAT
    ) + " " + start_msg + "\n\t Logfile is at {}/logs/pdf_storer_{}.log".format(
        os.getcwd(),
        datetime.today().strftime("%Y%m%d"))
    console.setLevel(logging.ERROR)
    # "mute" the INFO, DEBUG level of sub-components
    logging.getLogger("connectionpool.py").setLevel(logging.WARNING)
    clean = True
    try:
        do_it()
        console.setLevel(logging.INFO)
        end_msg = "Completed. Processed {} repositories, {} resources: {} pdfs created, {} pdfs deleted, {} errors".format(
            repo_ctr, ctr, counters['created'], counters['deleted'],
            counters['errors'])
        main_log.info(end_msg)
        mail_msg = mail_msg + "\n" + datetime.now().strftime(
            DATEFORMAT) + " " + end_msg
    except Exception as e:
        tb = sys.exc_info()
        try:
            end_msg = "Processed {} repositories, {} resources: {} pdfs created, {} pdfs deleted, {} errors".format(
                repo_ctr, ctr, counters['created'], counters['deleted'],
                counters['errors'])
        except Exception as em:
            end_msg = "Problem creating the completion line {}".format(em)
        error_msg = "An Error was encountered: ({} {}). Processing halted\n {}".format(
            e, tb, end_msg)
        main_log.error(error_msg)
        mail_msg = mail_msg + "\n" + datetime.now().strftime(
            DATEFORMAT) + " " + error_msg
        clean = False
    if (clean):
        if efrom and eto:
            send_mail(eto, efrom, MAILSUBJECT, mail_msg)
    else:
        if efrom and eto:
            send_mail(eto, efrom, MAILSUBJECT + ' WITH ERROR', mail_msg)
        raise Exception("error")
コード例 #5
0
ファイル: views.py プロジェクト: alexkonradi/api-server
    def post(self, request, *args, **kwargs):

        try:

            client = self.authenticate_user(request, *args, **kwargs)

            if client is not None:

                attributes = ['name', 'description', 'location', 'tags']
                for attribute in attributes:
                    if not attribute in request.POST:
                        return HttpResponseBadRequest("Cannot find '%s' attribute" % attribute)

                    subject = request.POST['name']
                    sender = client.email
                    shameless_plug = "SENT USING REUSE MOBILE APP. GET IT AT armadillo.xvm.mit.edu."
                    description = request.POST['description']
                    text = description + "\n\n\n\n_______________________________________________\n"+shameless_plug
                    name = request.POST['name']
                    thread_id = str(time.time())+"@"+MAIN_URL
                    headers = [('REUSE-MOBILE', 'true'), ('Message-ID', thread_id)]

                    reuse_list = [REUSE_EMAIL_ADDRESS]  # testing

                    status = send_mail(sender, reuse_list, subject, text, headers)

                    if status == 'success':
                        location = request.POST['location']
                        tags = request.POST['tags']
                        new_thread = EmailThread.objects.create(subject=subject)
                        new_email = NewPostEmail.objects.create(sender=sender, subject=subject, text=text, thread=new_thread)

                        ipl = ItemPostLocator()
                        data = ipl.get_location(location.upper())

                        if ipl is not None:
                            lon = str(data['lon'])
                            lat = str(data['lat'])
                        else:
                            lon = ''
                            lat = ''

                        new_item = Item.objects.create(name=name, description=description, location=location, tags=tags, post_email=new_email, lat=lat, lon=lon, is_email=False, thread=new_thread)

                        notify_all_users()

                        response = jsonpickle.encode({"success": True})
                        return HttpResponse(response)
                    else:
                        logger.error("POST: "+status + '\n\n')
                        response = jsonpickle.encode({"success": False})
                        return HttpResponse(response)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
                logger.exception(str(e))
                return HttpResponseServerError(e if DEBUG else "An error has occured.")
コード例 #6
0
ファイル: views.py プロジェクト: alexkonradi/api-server
    def post(self, request, *args, **kwargs):

        try:

            client = self.authenticate_user(request, *args, **kwargs)

            if client is not None:

                if not 'item_id' in request.POST:
                    return HttpResponseBadRequest("Cannot find 'item_id' attribute")

                item_id = request.POST['item_id']
                item = Item.objects.get(pk=item_id)

                if item.claimed:
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)

                subject = "Re: " + item.thread.subject
                text = "ITEM HAS BEEN CLAIMED!\n\n" + item.post_email.text
                sender = client.email
                reuse_list = [REUSE_EMAIL_ADDRESS]
                thread_id = item.thread.thread_id
                msg_id = str(time.time())+"@"+MAIN_URL
                headers = [('REUSE-MOBILE', 'true'), ('Message-ID', msg_id)]

                if thread_id != '':
                    headers.append(('In-Reply-To', thread_id))

                status = send_mail(sender, reuse_list, subject, text)

                if status == "success":
                    item.claimed = True
                    item.save()

                    notify_all_users()

                    response = jsonpickle.encode({"success": True})
                    return HttpResponse(response)
                else:
                    logger.error("CLAIM: " + status + '\n\n')
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
                    logger.exception(str(e))
                    return HttpResponseServerError(e if DEBUG else "An error has occured.")
コード例 #7
0
    def post(self, request, *args, **kwargs):
        try:
            client_email = request.POST['email']
            client_gcm_id = request.POST['gcm_id']

            if self.validate_mit_email(client_email):

                #generate hashed token seed by email address.
                token = hashlib.sha224(client_email+"@armadillo.reuse").hexdigest()

                verify_subject = "Your REUSE Mobile account verification"

                verify_message = "Please verify your account here: http://%s:%s/api/login/verify/?username=%s&token=%s" % (MAIN_URL, SERVER_PORT, client_email, token)
                verify_from = "*****@*****.**"
                verify_to = [client_email]

                #TODO: Fail loud?

                status = send_mail(verify_from, verify_to, verify_subject, verify_message)

                if status == "success":
                    client_user = None
                    try:
                        client_user = User.objects.all().get(username=client_email)
                    except Exception as e:
                        pass
                    if client_user is not None:
                        client_user.is_active = False
                        client_user.save()
                    else:
                        client_user = User.objects.create_user(username=client_email, email=client_email, password=token)
                        client_user.is_active = False
                        client_gcm_user = GcmUser.objects.create(user=client_user, gcm_id=client_gcm_id)
                        client_user.save()

                    response = jsonpickle.encode({"success": True})
                    return HttpResponse(response, content_type="application/json")
                else:
                    logger.error("SIGNUP: " + status + '\n\n')
                    return HttpResponseServerError("Please try again." + "\n\n\n" + status)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
            logger.exception(str(e))
            return HttpResponseServerError(e if DEBUG else "An error has occured.")
コード例 #8
0
def register(request):

    if request.POST:
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        confirmpwd = request.POST.get('confirmpwd', None)
        email = request.POST.get('email', None)
        user_type = request.POST.get('user_type', None)
        company = request.POST.get('company', None)
        product = request.POST.get('product', None)
        contact_user = request.POST.get('contact_user', None)
        contact_tel = request.POST.get('contact_tel', None)
        contact_phone = request.POST.get('contact_phone', None)
        '''验证重复帐号名'''
        usernames = User.objects.filter(username__iexact=username)
        if usernames:
            return HttpResponse(simplejson.dumps({
                "statusCode":
                302,
                "navTabId":
                request.POST.get('navTabId', 'accountindex'),
                "callbackType":
                request.POST.get('callbackType', None),
                "message":
                u'用户名已经存在不能添加',
                "info":
                u'用户名已经存在不能添加',
                "result":
                u'用户名已经存在不能添加'
            }),
                                mimetype='application/json')


#        '''验证用户名是否存在于LDAP中并验证是否是创建用于访问Django REST Framework的特殊用户'''
#        if not add_validate_ldap(username) and username != 'autonavi&token':
#            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json')
        '''验证两次输入密码是否一致'''
        if password != confirmpwd:
            return HttpResponse(simplejson.dumps({
                "statusCode":
                302,
                "navTabId":
                request.POST.get('navTabId', 'accountindex'),
                "callbackType":
                request.POST.get('callbackType', None),
                "message":
                u'两次密码输入不一致',
                "info":
                u'两次密码输入不一致',
                "result":
                u'两次密码输入不一致'
            }),
                                mimetype='application/json')
        '''验证重复email'''
        emails = User.objects.filter(email__iexact=email)
        if emails:
            return HttpResponse(simplejson.dumps({
                "statusCode":
                302,
                "navTabId":
                request.POST.get('navTabId', 'accountindex'),
                "callbackType":
                request.POST.get('callbackType', None),
                "message":
                u'EMAIL已经存在不能添加',
                "info":
                u'EMAIL已经存在不能添加',
                "result":
                u'EMAIL已经存在不能添加'
            }),
                                mimetype='application/json')
        if password != None and password != '':
            password = make_password(password, salt=None, hasher='default')
            user = User(username=username, password=password, email=email)
        else:
            user = User(username=username, email=email)
        user.save()

        userprofile = UserProfile(user=user,
                                  user_type=user_type,
                                  company=company,
                                  product=product,
                                  contact_user=contact_user,
                                  contact_tel=contact_tel,
                                  contact_phone=contact_phone)
        userprofile.save()
        '''用户添加成功后给它发送邮件提示'''
        subject = u'创建用户成功'
        to_mail_list = ['*****@*****.**', '*****@*****.**']
        # 定义邮件内容
        email = u"您好,现在已为您创建了登录系统的用户!"
        url = u"系统地址: 127.0.0.1"
        loginusername = u"用户名: " + user.username
        loginpassword = u"密码为公司邮件系统中的密码"
        body = loader.render_to_string(
            'account/mail.html', {
                'email': email,
                'url': url,
                'loginusername': loginusername,
                'loginpassword': loginpassword
            })
        send_mail(subject, body, from_email, to_mail_list, html="text/html")

        Log(username=request.user.username,
            content="execute register user:"******" success!",
            level=1).save()
        return HttpResponse(simplejson.dumps({
            "statusCode":
            200,
            "navTabId":
            request.POST.get('navTabId', 'accountindex'),
            "callbackType":
            request.POST.get('callbackType', 'closeCurrent'),
            "message":
            u'添加成功'
        }),
                            mimetype='application/json')
    else:
        return render_to_response(
            'account/register.html',
            {'account_usertype_dict': account_usertype_dict})
コード例 #9
0
ファイル: views.py プロジェクト: bbaobelief/neptune
def add(request):
    if request.POST:
#        applyid = request.POST.get('applyid', None)

        service_name = request.POST.get('service_name', None)
        service_domainname = request.POST.get('service_domainname', None)
        version = request.POST.get('version', None)
#        apply_user = request.POST.get('apply_user', None)
        apply_user = request.user.username
        apply_time = request.POST.get('apply_time', None)
        priority = request.POST.get('priority', None)
        file_name = request.POST.get('file_name', None)
        file_url = request.POST.get('file_url', None)
        online_time = request.POST.get('online_time', None)
        develop_user = request.POST.get('develop_user', None)
        test_user = request.POST.get('test_user', None)
        operate_user = request.POST.get('operate_user', None)
        
        is_system_test = request.POST.get('is_system_test', None)
        is_function_test = request.POST.get('is_function_test', None)
        is_capability_test = request.POST.get('is_capability_test', None)
        is_pressure_test = request.POST.get('is_pressure_test', None)
        is_ui_test = request.POST.get('is_ui_test', None)
        is_special_test = request.POST.get('is_special_test', None)
        is_uat_test = request.POST.get('is_uat_test', None)
        is_stability_test = request.POST.get('is_stability_test', None)
        is_version_control = request.POST.get('is_version_control', None)
        is_train_complete = request.POST.get('is_train_complete', None)
        is_datatransfer_complete = request.POST.get('is_datatransfer_complete', None)
        is_document_complete = request.POST.get('is_document_complete', None)
        is_environment_complete = request.POST.get('is_environment_complete', None)
        is_backup_plan = request.POST.get('is_backup_plan', None)
        is_paramconf_complete = request.POST.get('is_paramconf_complete', None)
        is_can_online = request.POST.get('is_can_online', None)
        is_check_url = request.POST.get('is_check_url', None)
        
        check_url = request.POST.get('check_url', None)
        
        deploy_step = request.POST.get('deploy_step', None)
        backup_method = request.POST.get('backup_method', None)
        update_check = request.POST.get('update_check', None)
        
        
        '''自动生成申请单号'''
        prefix = 'OP-SR-'
        time_list = apply_time.split('-')
        timestr = ''.join(time_list)
        applyonline_count = ApplyOnline.objects.filter(apply_time=datetime.date(int(time_list[0]), int(time_list[1]), int(time_list[2]))).count()
        applyid = prefix + timestr + '-' + str(applyonline_count+1)
        
        '''验证重复申请单号'''
        applyids = ApplyOnline.objects.filter(applyid__iexact=applyid)
        if applyids:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId', 'applyonlineindex'), "callbackType":request.POST.get('callbackType',None), "message":u'申请单号已经存在不能添加'}), mimetype='application/json')
        applyonline = ApplyOnline(applyid=applyid, service_name=service_name, service_domainname=service_domainname, 
                                  version=version, apply_user=apply_user, apply_time=apply_time, file_name=file_name, 
                                  file_url=file_url, online_time=online_time, develop_user=develop_user, test_user=test_user,
                                  operate_user=operate_user, check_url=check_url, deploy_step=deploy_step, backup_method=backup_method, 
                                  update_check=update_check, status=0, flag=1)
        
        applyonline.save()
        
        applyonline.priority = int(priority)
        applyonline.is_system_test = int(is_system_test)
        applyonline.is_function_test = int(is_function_test)
        applyonline.is_capability_test = int(is_capability_test)
        applyonline.is_pressure_test = int(is_pressure_test)
        applyonline.is_ui_test = int(is_ui_test)
        applyonline.is_special_test = int(is_special_test)
        applyonline.is_uat_test = int(is_uat_test)
        applyonline.is_stability_test = int(is_stability_test)
        applyonline.is_version_control = int(is_version_control)
        applyonline.is_train_complete = int(is_train_complete)
        applyonline.is_datatransfer_complete = int(is_datatransfer_complete)
        applyonline.is_document_complete = int(is_document_complete)
        applyonline.is_environment_complete = int(is_environment_complete)
        applyonline.is_backup_plan = int(is_backup_plan)
        applyonline.is_paramconf_complete = int(is_paramconf_complete)
        applyonline.is_can_online = int(is_can_online)
        applyonline.is_check_url = int(is_check_url)
        
        applyonline.save()
        
        
        '''申请人添加完申请单后向运维相关人员发送邮件提示'''
        subject = u'服务上线申请'
        to_mail_list = []
        if operate_user != None and operate_user != '':
            usernamelist = operate_user.split(',')
            for username in usernamelist:
                username += '@autonavi.com'
                to_mail_list.append(username)
        # 定义邮件内容
        email = u"您好,现在已向您发送了服务器上线申请,以下是基本信息,详细信息请登录CMDB系统查询:"
        body = loader.render_to_string('applyonline/mail_operate.html', {'email':email, 'applyonline':applyonline})
        send_mail(subject, body, from_email, to_mail_list, html="text/html")
        
        
        Log(username=request.user.username, content="execute add applyonline:" + applyonline.applyid + " success!", level=1).save()
        return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId', 'equipmentindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json')
    else:
        # 弹出新建窗口
        return render_to_response('applyonline/add.html', {'applyonline_status_dict':applyonline_status_dict})
コード例 #10
0
    def post(self):
        send_mail(self.reqparse.parse_args())

        return {'message': 'Your mail was sent successfully'}
コード例 #11
0
ファイル: run.py プロジェクト: jia19971106/auto_test_frame
import unittest,time
from utils.HTMLTestReportCN import HTMLTestRunner  # 导入HTMLTestRunner,用于创建测试执行对象
import utils.utils as ut
# 加载指定目录下的所有测试用例文件中的测试用例,测试用例的文件名必须以test开头
cases_dir = ut.CASESPATH  # 指定保存测试用例文件的目录
# 加载指定目录下所有以test开头的.py文件中测试用例
# discover(path,pattern)
# path,表示测试用例文件所在目录
# pattern,表示需要加载的用例文件名的格式,默认参数
cases = unittest.defaultTestLoader.discover(cases_dir,pattern='test_set_email.py')
case_cout = cases.countTestCases()  # 返回测试套件中的用例数量
print(f'用例总数:%d' %(case_cout))
time.sleep(2)
# 获取系统当前时间,YYYY-MM-DD H-M-S
t = ut.get_current_time()
# 创建运行对象,执行测试
# 使用当前时间作为测试报告文件名,避免以前的报告被覆盖
# f = open(t+'.html','wb')  # 以二进制写的方式打开文件
with open(ut.REPORTPATH+'/'+t+'.html','wb') as f:
    runner = HTMLTestRunner(stream=f,title='协同OA测试报告')
    runner.run(cases)

file = ut.get_report(t)
ut.send_mail(file)

コード例 #12
0
ファイル: views.py プロジェクト: yindashan/tender
def register(request):

    if request.POST:
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        confirmpwd = request.POST.get('confirmpwd', None)
        email = request.POST.get('email', None)
        user_type = request.POST.get('user_type', None)
        company = request.POST.get('company', None)
        product = request.POST.get('product', None)
        contact_user = request.POST.get('contact_user', None)
        contact_tel = request.POST.get('contact_tel', None)
        contact_phone = request.POST.get('contact_phone', None)
        
        '''验证重复帐号名'''
        usernames = User.objects.filter(username__iexact=username)
        if usernames:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名已经存在不能添加', "info":u'用户名已经存在不能添加',"result":u'用户名已经存在不能添加'}), mimetype='application/json')
        
#        '''验证用户名是否存在于LDAP中并验证是否是创建用于访问Django REST Framework的特殊用户'''
#        if not add_validate_ldap(username) and username != 'autonavi&token':
#            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json')
        
        '''验证两次输入密码是否一致'''
        if password != confirmpwd:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'两次密码输入不一致', "info":u'两次密码输入不一致',"result":u'两次密码输入不一致'}), mimetype='application/json')
        
        '''验证重复email'''
        emails = User.objects.filter(email__iexact=email)
        if emails:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'EMAIL已经存在不能添加', "info":u'EMAIL已经存在不能添加',"result":u'EMAIL已经存在不能添加'}), mimetype='application/json')
        if password != None and password != '':
            password = make_password(password, salt=None, hasher='default')
            user = User(username=username, password=password, email=email)
        else:
            user = User(username=username, email=email)
        user.save()
        
        userprofile = UserProfile(user=user, 
                                  user_type=user_type, 
                                  company=company, 
                                  product=product, 
                                  contact_user=contact_user, 
                                  contact_tel=contact_tel, 
                                  contact_phone=contact_phone)
        userprofile.save()
        
        
        '''用户添加成功后给它发送邮件提示'''
        subject = u'创建用户成功'
        to_mail_list = ['*****@*****.**', '*****@*****.**']
        # 定义邮件内容
        email = u"您好,现在已为您创建了登录系统的用户!"
        url = u"系统地址: 127.0.0.1"
        loginusername = u"用户名: " + user.username
        loginpassword = u"密码为公司邮件系统中的密码"
        body = loader.render_to_string('account/mail.html', {'email':email, 'url':url, 'loginusername':loginusername, 'loginpassword':loginpassword})
        send_mail(subject, body, from_email, to_mail_list, html="text/html")
        
        Log(username=request.user.username, content="execute register user:"******" success!", level=1).save()
        return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json')
    else:
        return render_to_response('account/register.html', {'account_usertype_dict':account_usertype_dict})
コード例 #13
0
ファイル: views.py プロジェクト: ARmadillo-reuse/api-server
    def post(self, request, *args, **kwargs):

        try:

            client = self.authenticate_user(request, *args, **kwargs)

            if client is not None:

                attributes = ['item_id', 'text', 'email']
                for attribute in attributes:
                    if not attribute in request.POST:
                        return HttpResponseBadRequest("Cannot find '%s' attribute" % attribute)


                item_id = request.POST['item_id']
                item = Item.objects.get(pk=item_id)

                shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu."+"\n Email: [email protected]"

                if request.POST['email'] == 'true':
                    # send a claim email only to sender

                    sender = client.email
                    to = [item.sender]
                    subject = "Re: " + item.thread.subject
                    text = request.POST['text'] + "\n\n_______________________________________________\n"+shameless_plug
                    msg_id = str(time.time())+"@"+MAIN_URL
                    headers = [('Message-Id', msg_id)]
                    status = send_mail(sender, to, subject, text, headers)

                    if status == "success":
                        response = jsonpickle.encode({"success": True})
                        return HttpResponse(response)
                    else:
                        logger.error("CLAIM: " + status + '\n\n')
                        response = jsonpickle.encode({"success": False})
                        return HttpResponse(response)


                if item.claimed:
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)

                should_claim = True
                claim_text = request.POST['text']
                if claim_text.strip() != '':
                    should_claim = False

                subject = "Re: " + item.thread.subject
                if should_claim:
                    messages = ["All gone!!!", "Item(s) have been claimed!", "Claimed!!!", "Too late, all gone (t-lag)!", "Gone! Thanks for reusing.", "Claimed!!"]
                    #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact()
                    text = "\n\n" + "<b>" + random.choice(messages) + "</b>" #+ fact
                else:
                    text = "<b>I hereby claim the following items:<b>\n\n"
                    text += claim_text
                    #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact()
                    #text += fact

                text += "\n\n_______________________________________________\n"+shameless_plug
                sender = client.email
                reuse_list = [REUSE_EMAIL_ADDRESS]
                thread_id = item.thread.thread_id
                msg_id = str(time.time())+"@"+MAIN_URL
                headers = [('Message-Id', msg_id)]

                if thread_id != '':
                    headers.append(('In-Reply-To', thread_id))

                status = send_mail(sender, reuse_list, subject, text, headers)

                if status == "success":
                    if should_claim:
                        item.claimed = True
                        by = "\n\n <b>By:</b> " + client.email
                        item.description = item.description + "\n\n\n<b>>>>>>>>>>>[ALL GONE]>>>>>>>>>></b>\n" + by
                        item.description += "\n\n<b><<<<<<<<<<[CLOSED]<<<<<<<<<<</b>"
                    else:
                        by = "\n\n <b>By:</b> " + client.email
                        item.description = item.description + "\n\n\n<b>>>>>>>>>>>[CLAIMED]>>>>>>>>>></b>\n" + claim_text + by

                    item.save()

                    notify_all_users()

                    response = jsonpickle.encode({"success": True})
                    return HttpResponse(response)
                else:
                    logger.error("CLAIM: " + status + '\n\n')
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
                    logger.exception(str(e))
                    return HttpResponseServerError(e if DEBUG else "An error has occured.")
コード例 #14
0
ファイル: views.py プロジェクト: bbaobelief/neptune
def register(request):

    if request.POST:
        username = request.POST.get('org.username',None)
        password = request.POST.get('password',None)
        confirmpwd = request.POST.get('confirmpwd',None)
        password = username
        confirmpwd = username
        email = request.POST.get('org.email',None)
        
        role_name_str = request.POST.get('org.role_name', None)
        
        department = request.POST.get('org.parent_organization_name',None)
        if department:
            try:
                organization = Organization.objects.get(organization_name__iexact=department)
            except:
                return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'部门无效请重新选择或置空'}), mimetype='application/json')
        
        
        phone = request.POST.get('phone',None)
        '''验证重复帐号名'''
        usernames = User.objects.filter(username__iexact=username)
        '''验证重复email'''
        emails = User.objects.filter(email__iexact=email)
        if usernames:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名已经存在不能添加', "info":u'用户名已经存在不能添加',"result":u'用户名已经存在不能添加'}), mimetype='application/json')
        
        '''验证用户名是否存在于LDAP中'''
        if not add_validate_ldap(username):
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'用户名无效不能填加'}), mimetype='application/json')
        
        '''验证两次输入密码是否一致'''
        if password != confirmpwd:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'两次密码输入不一致', "info":u'两次密码输入不一致',"result":u'两次密码输入不一致'}), mimetype='application/json')
        
        if emails:
            return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'EMAIL已经存在不能添加', "info":u'EMAIL已经存在不能添加',"result":u'EMAIL已经存在不能添加'}), mimetype='application/json')
        if password != None and password != '':
            password = make_password(password, salt=None, hasher='default')
            user = User(username=username, password=password, email=email)
        else:
            user = User(username=username, email=email)
        user.save()
        userprofile = UserProfile(user=user, department=department, phone=phone)
        userprofile.save()
        
        if role_name_str != None and role_name_str != '':
            role_name_list = role_name_str.split(',')
            for role_name in role_name_list:
                if role_name != None and role_name != '':
                    try:
                        role = Role.objects.get(role_name__exact=role_name)
                        role.users.add(user)
                    except:
                        return HttpResponse(simplejson.dumps({"statusCode":302, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType',None), "message":u'存在无效角色名请重新选择或置空'}), mimetype='application/json')
        
        '''用户添加成功后给它发送邮件提示'''
        subject = u'创建用户成功'
        to_mail_list = ['*****@*****.**', '*****@*****.**']
        # 定义邮件内容
        email = u"您好,现在已为您创建了登录运维自动化系统的用户!"
        url = u"运维自动化系统地址: 10.2.161.15:89"
        loginusername = u"用户名: " + user.username
        loginpassword = u"密码为公司邮件系统中的密码"
        body = loader.render_to_string('account/mail.html', {'email':email, 'url':url, 'loginusername':loginusername, 'loginpassword':loginpassword})
        send_mail(subject, body, from_email, to_mail_list, html="text/html")
        
        Log(username=request.user.username, content=u"成功创建用户: " + username, level=1).save()
        return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId','accountindex'), "callbackType":request.POST.get('callbackType','closeCurrent'), "message":u'添加成功'}), mimetype='application/json')
    else:
        return render_to_response('account/register.html', {'account_usertype_dict':account_usertype_dict})
コード例 #15
0
    def post(self, request, *args, **kwargs):

        try:

            client = self.authenticate_user(request, *args, **kwargs)

            if client is not None:

                attributes = ['name', 'description', 'location', 'tags']
                for attribute in attributes:
                    if not attribute in request.POST:
                        return HttpResponseBadRequest(
                            "Cannot find '%s' attribute" % attribute)

                    subject = request.POST['name']
                    sender = client.email
                    shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu." + "\n Email: [email protected]"
                    description = request.POST['description']
                    text = description + "\n\n Location: " + request.POST[
                        'location'] + "\n\n_______________________________________________\n" + shameless_plug

                    #Prettify item name for display
                    words = request.POST['name'].split()
                    name = ''
                    for word in words:
                        name += word[0].upper() + word[1:]
                        name += " "
                    name = name[:len(name) - 1]
                    thread_id = str(time.time()) + "@" + MAIN_URL
                    headers = [('Message-Id', thread_id)]

                    reuse_list = [REUSE_EMAIL_ADDRESS]  # testing

                    status = send_mail(sender, reuse_list, subject, text,
                                       headers)

                    if status == 'success':
                        location = request.POST['location']
                        tags = request.POST['tags']
                        new_thread = EmailThread.objects.create(
                            subject=subject)
                        new_email = NewPostEmail.objects.create(
                            sender=sender,
                            subject=subject,
                            text=text,
                            thread=new_thread)

                        ipl = ItemPostLocator()
                        data = ipl.get_location(location.upper())

                        if ipl is not None:
                            lon = str(data['lon'])
                            lat = str(data['lat'])
                        else:
                            lon = ''
                            lat = ''

                        new_item = Item.objects.create(name=name,
                                                       sender=sender,
                                                       description=description,
                                                       location=location,
                                                       tags=tags,
                                                       post_email=new_email,
                                                       lat=lat,
                                                       lon=lon,
                                                       is_email=False,
                                                       thread=new_thread)

                        notify_all_users()

                        response = jsonpickle.encode({"success": True})
                        return HttpResponse(response)
                    else:
                        logger.error("POST: " + status + '\n\n')
                        response = jsonpickle.encode({"success": False})
                        return HttpResponse(response)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
            logger.exception(str(e))
            return HttpResponseServerError(
                e if DEBUG else "An error has occured.")
コード例 #16
0
    def post(self, request, *args, **kwargs):

        try:

            client = self.authenticate_user(request, *args, **kwargs)

            if client is not None:

                attributes = ['item_id', 'text', 'email']
                for attribute in attributes:
                    if not attribute in request.POST:
                        return HttpResponseBadRequest(
                            "Cannot find '%s' attribute" % attribute)

                item_id = request.POST['item_id']
                item = Item.objects.get(pk=item_id)

                shameless_plug = "Sent using REUSE Mobile App. Get it at armadillo.xvm.mit.edu." + "\n Email: [email protected]"

                if request.POST['email'] == 'true':
                    # send a claim email only to sender

                    sender = client.email
                    to = [item.sender]
                    subject = "Re: " + item.thread.subject
                    text = request.POST[
                        'text'] + "\n\n_______________________________________________\n" + shameless_plug
                    msg_id = str(time.time()) + "@" + MAIN_URL
                    headers = [('Message-Id', msg_id)]
                    status = send_mail(sender, to, subject, text, headers)

                    if status == "success":
                        response = jsonpickle.encode({"success": True})
                        return HttpResponse(response)
                    else:
                        logger.error("CLAIM: " + status + '\n\n')
                        response = jsonpickle.encode({"success": False})
                        return HttpResponse(response)

                if item.claimed:
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)

                should_claim = True
                claim_text = request.POST['text']
                if claim_text.strip() != '':
                    should_claim = False

                subject = "Re: " + item.thread.subject
                if should_claim:
                    messages = [
                        "All gone!!!", "Item(s) have been claimed!",
                        "Claimed!!!", "Too late, all gone (t-lag)!",
                        "Gone! Thanks for reusing.", "Claimed!!"
                    ]
                    #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact()
                    text = "\n\n" + "<b>" + random.choice(
                        messages) + "</b>"  #+ fact
                else:
                    text = "<b>I hereby claim the following items:<b>\n\n"
                    text += claim_text
                    #fact = "\n\n\nAnd now for an interesting fact. Did you know:" + get_random_fact()
                    #text += fact

                text += "\n\n_______________________________________________\n" + shameless_plug
                sender = client.email
                reuse_list = [REUSE_EMAIL_ADDRESS]
                thread_id = item.thread.thread_id
                msg_id = str(time.time()) + "@" + MAIN_URL
                headers = [('Message-Id', msg_id)]

                if thread_id != '':
                    headers.append(('In-Reply-To', thread_id))

                status = send_mail(sender, reuse_list, subject, text, headers)

                if status == "success":
                    if should_claim:
                        item.claimed = True
                        by = "\n\n <b>By:</b> " + client.email
                        item.description = item.description + "\n\n\n<b>>>>>>>>>>>[ALL GONE]>>>>>>>>>></b>\n" + by
                        item.description += "\n\n<b><<<<<<<<<<[CLOSED]<<<<<<<<<<</b>"
                    else:
                        by = "\n\n <b>By:</b> " + client.email
                        item.description = item.description + "\n\n\n<b>>>>>>>>>>>[CLAIMED]>>>>>>>>>></b>\n" + claim_text + by

                    item.save()

                    notify_all_users()

                    response = jsonpickle.encode({"success": True})
                    return HttpResponse(response)
                else:
                    logger.error("CLAIM: " + status + '\n\n')
                    response = jsonpickle.encode({"success": False})
                    return HttpResponse(response)
            else:
                return HttpResponseForbidden("Invalid Request.")

        except Exception as e:
            logger.exception(str(e))
            return HttpResponseServerError(
                e if DEBUG else "An error has occured.")