Commit 0e4b3d2c by aagusti

Penambahan fungsi config_pars_url

1 parent 60f430fb
from opensipkd.base import get_params
from opensipkd.models import (DBSession, User, GroupPermission, UserDeviceModel)
from opensipkd.tools import (
......@@ -149,3 +150,6 @@ def update_token(user):
DBSession.flush()
return dict(token=user.security_code)
def config_pars_rpc_url(params, method=None):
values = get_params(params)
return pars_rpc_url(values, method)
\ No newline at end of file
......@@ -27,6 +27,7 @@ Link dalam module registrasi:
5. Form Upload template
"""
import os
from datetime import datetime
import colander
from deform import (widget, Button, FileData, ValidationFailure)
......@@ -85,9 +86,10 @@ class AddSchema(colander.Schema):
is_id_card = get_params('reg_idcard')
user = request.user
external_user = user and user.external_identities.count() > 0 or False
if "id_info" in request.session or external_user:
if user:
self["email"].widget = widget.TextInputWidget(readonly=True)
self["email"].missing = colander.drop
self["email"].validator = None
if is_id_card == '1' or is_id_card == "True" or is_id_card == "true":
self["kode"] = colander.SchemaNode(
......@@ -162,7 +164,7 @@ class Registrasi(BaseView):
self.buttons = (btn_register, btn_cancel)
self.add_schema = AddSchema
self.edit_schema = EditSchema
self.table = User
self.table = Partner
self.list_route = "home"
def form_validator(self, form, value):
......@@ -180,41 +182,39 @@ class Registrasi(BaseView):
request = form.request
session = request.session
def raise_err(field, msg):
form_exc[field] = msg
raise form_exc
def err_captcha():
msg = 'Captcha berbeda'
form_exc['captcha'] = msg
raise form_exc
raise_err('captcha', msg)
def err_email():
exc = colander.Invalid(
form['email'],
'e-mail %s sudah ada yang menggunakan' % value['email'])
raise exc
msg = 'e-mail %s sudah ada yang menggunakan' % value['email']
raise_err('email', msg)
def err_user():
if 'user_name' in form:
raise colander.Invalid(
form['user_name'],
'User name %s sudah ada yang menggunakan' % value[
'user_name'])
msg = 'User name %s sudah ada yang menggunakan' % value[
'user_name']
raise_err('user_name', msg)
else:
raise colander.Invalid(
form['email'],
'User name %s sudah ada yang menggunakan' % value['email'])
msg = 'Email %s sudah ada yang menggunakan' % value['email']
raise_err('email', msg)
def err_nik():
if "kode" in form:
raise colander.Invalid(
form['kode'],
'NIK %s sudah ada yang menggunakan' % value['kode'])
msg = 'NIK %s sudah ada yang menggunakan' % value['kode']
raise_err('kode', msg)
else:
raise colander.Invalid(
form['mobile'],
'Mobile %s sudah ada yang menggunakan' % value['kode'])
msg = 'Mobile %s sudah ada yang menggunakan' % value['kode']
raise_err('mobile', msg)
def err_login():
raise colander.Invalid(
form["password"], 'User atau Password tidak sesuai')
msg = 'User atau Password tidak sesuai'
raise_err('password', msg)
if not request.user and need_captcha():
captcha = 'captcha' in value and value['captcha'].upper() or None
......@@ -222,39 +222,39 @@ class Registrasi(BaseView):
if captcha != ses_captcha:
err_captcha()
is_logged = form.request.user
user = request.user
if not "email" in value and "id_info" in session:
value["email"] = session["id_info"]["email"]
if not request.user and (
if not user and (
"user_name" not in value or not value["user_name"]):
value["user_name"] = value["email"]
if 'user_name' in value:
user_name = value["user_name"]
user = user_found(user_name)
if user and not is_logged:
found = user_found(user_name)
if found and not user:
err_user()
if user and is_logged:
if user.id != is_logged.id:
if found and user:
if user.id != found.id:
err_user()
# Check Data Partner
if request.user:
q = DBSession.query(Partner).filter_by(email=request.user.email)
if user:
q = DBSession.query(Partner).filter_by(email=user.email)
partner = q.first()
else:
partner = None
if not request.user:
if not user:
email = value["email"]
user = user_found(email)
if user and not is_logged:
found = user_found(email)
if found and not user:
err_email()
if user and is_logged:
if user.id != is_logged.id:
if found and user:
if user.id != found.id:
err_email()
found = email_found_partner(email)
......@@ -276,9 +276,8 @@ class Registrasi(BaseView):
err_nik()
if 'password' in value:
user = form.request.user
if not user or not UserService.check_password(user,
value['password']):
if not user or not UserService.check_password(
user, value['password']):
err_login()
def before_add(self):
......@@ -315,8 +314,8 @@ class Registrasi(BaseView):
return super(Registrasi, self).view_add()
def query_id(self):
return DBSession.query(User). \
filter(User.id == self.req.user.id)
return DBSession.query(Partner). \
filter(Partner.email == self.req.user.email)
def id_not_found(self):
return
......@@ -324,15 +323,14 @@ class Registrasi(BaseView):
def get_values(self, row, istime=False):
d = super().get_values(row, istime)
partner = DBSession.query(Partner). \
join(User, Partner.email == User.email). \
filter(User.id == self.req.user.id).first()
filter(Partner.email == self.req.user.email).first()
if partner:
fields = ["nama", "alamat_1", "alamat_2", "mobile", "email", "kode",
"idcard"]
for f in fields:
d[f] = hasattr(partner, f) and getattr(partner, f) or ""
if "idcard" in d :
if d["idcard"]:
if "idcard" in d:
if d["idcard"]:
filename = d["idcard"]
preview_url = "/".join(
[self.home, partner_idcard_folder, filename])
......@@ -342,9 +340,12 @@ class Registrasi(BaseView):
}
else:
d.pop("idcard")
return d
def before_add(self):
email = self.req.user and self.req.user.email or ""
return {"email": email}
@view_config(route_name='profile', renderer='templates/form.pt',
permission='view')
def view_profile(self):
......@@ -353,9 +354,15 @@ class Registrasi(BaseView):
if reg_form:
return HTTPFound(location=self.req.route_url(reg_form))
self.bindings = dict(user=self.req.user)
return super(Registrasi, self).view_edit()
resp = super(Registrasi, self).view_edit()
if not resp:
resp = super(Registrasi, self).view_add()
return resp
def save_request(self, values, row=None):
if not "email" in values or not values["email"]:
values["email"] = self.req.user and self.req.user.email or ""
if "idcard" in values and values["idcard"]:
if self.req.POST['upload'] != b'':
path = get_params('idcard_folder', '/tmp/idcard')
......@@ -363,7 +370,9 @@ class Registrasi(BaseView):
values["idcard"] = upload.save(self.req, 'upload')
else:
values.pop("idcard")
if not row:
values["is_vendor"] = 0
values["is_customer"] = 1
row = super().save_request(values, row)
if not self.req.user: # User Baru
if 'groups' in values and values['groups']:
......@@ -374,46 +383,13 @@ class Registrasi(BaseView):
DBSession.add(ug)
add_member_count(gr.id)
DBSession.flush()
data = dict(email=row.email)
# if 'id_info' in self.ses and self.ses['id_info']:
# id_info = self.ses["id_info"]
# values['email'] = id_info['email']
# values['external_id'] = id_info['sub']
# values['external_user_name'] = id_info["name"]
# values['external_email'] = id_info["email"]
# values['provider_name'] = id_info["iss"]
# # todo: what is this????
# # values['access_token']
# # values['alt_token']
# # values['token_secret']
# values["local_user_id"] = row.id
# external = ExternalIdentity()
# external.from_dict(values)
# DBSession.add(external)
# DBSession.flush()
# if need_verify():
# send_email_pending(self.req, row, 'Welcome new user',
# 'email-new-user',
# 'email-pending.tpl')
# ts = _(
# 'user-added',
# default='${email} berhasil ditambahkan tunggu hasil verifikasi data ',
# mapping=data)
#
# else:
# row.status = 1
# DBSession.add(row)
# self.ses.flash('Registrasi Sukses.')
# DBSession.flush()
# self.headers = get_login_headers(self.req, row)
# ts = _(
# 'user-added',
# default='${email} berhasil ditambahkan ',
# mapping=data)
# else: # Kirim email validasi
# todo validasi dan perubahan profile
remain = regenerate_security_code(row)
user = User()
user.email = row.email
user.user_name = row.email
user.registered_date=datetime.now()
DBSession.add(user)
DBSession.flush()
remain = regenerate_security_code(user)
send_email_security_code(
self.req, row, remain, 'Welcome new user', 'email-new-user',
'email-new-user.tpl')
......@@ -421,25 +397,8 @@ class Registrasi(BaseView):
'user-added',
default='${email} berhasil ditambahkan dan email untuk ubah ' \
'kata kunci sudah dikirim.',
mapping=data)
mapping={"email": row.email})
self.ses.flash(ts)
if "old_email" in self.ses and self.ses["old_email"]:
email = self.ses["old_email"]
del self.ses["old_email"]
else:
email = row.email
partner = Partner.query_email(email).first()
if not partner:
partner = Partner()
partner.is_vendor = 0
partner.is_customer = 1
partner.status = 0
partner.from_dict(values)
DBSession.add(partner)
DBSession.flush()
self.req.session.flash("Sukses update profile")
return row
def next_add(self, form, **kwargs):
......@@ -457,4 +416,4 @@ class Registrasi(BaseView):
values = dict(c)
row = self.save_request(values)
self.after_add(row, values)
return self.route_list()
\ No newline at end of file
return self.route_list()
......@@ -55,7 +55,7 @@
</div>
<div class="col-md-12" align="center">
<img src="${home}static/img/logo.png"
class="img-float img-thumbnail" style="height:auto;width:auto;border:none;"/>
class="img-float img-thumbnail" style="height:50px;width:auto;border:none;"/>
</div>
<div class="clearfix"></div>
</fieldset>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!