Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit de879328
authored
Mar 04, 2023
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
get urls
1 parent
49766c2f
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
62 additions
and
62 deletions
opensipkd/base/__init__.py
opensipkd/base/views/__init__.py
opensipkd/base/views/base_views.py
opensipkd/base/views/departemen.py
opensipkd/base/views/menus.py
opensipkd/base/views/partner_base.py
opensipkd/base/views/register.py
opensipkd/base/views/upload.py
opensipkd/base/views/user_group.py
opensipkd/base/views/user_login.py
opensipkd/base/__init__.py
View file @
de87932
...
...
@@ -148,7 +148,7 @@ def add_global(event):
event
[
'allow_register'
]
=
allow_register
event
[
'change_unit'
]
=
change_unit
event
[
'get_params'
]
=
get_params
event
[
'route_urls'
]
=
get_urls
#
event['route_urls'] = get_urls
def
get_params
(
params
,
alternate
=
None
,
settings
=
None
):
...
...
@@ -352,16 +352,6 @@ def get_menus(request):
return
result
def
get_urls
(
request
,
route_name
,
*
elements
,
**
kw
):
url
=
request
.
route_url
(
route_name
,
*
elements
,
**
kw
)
home
=
get_host
(
request
)
urls
=
url
.
split
(
":"
)
homes
=
home
.
split
(
":"
)
if
urls
[
0
]
!=
homes
[
0
]:
return
":"
.
join
([
homes
[
0
],
urls
[
1
:]])
return
url
def
format_datetime
(
v
):
if
v
.
time
()
!=
datetime
.
time
(
0
,
0
):
return
dmyhms
(
v
)
...
...
@@ -391,6 +381,14 @@ def json_rpc():
# if user is not None:
# return user.id
def
get_urls
(
url
):
home
=
get_params
(
'_host'
,
""
)
if
home
:
urls
=
url
.
split
(
":"
)
homes
=
home
.
split
(
":"
)
if
urls
[
0
]
!=
homes
[
0
]:
return
":"
.
join
([
homes
[
0
],
urls
[
1
:]])
return
url
def
get_host
(
request
):
host
=
get_params
(
'_host'
,
""
)
...
...
opensipkd/base/views/__init__.py
View file @
de87932
...
...
@@ -15,7 +15,7 @@ from pyramid.response import Response
from
pyramid.security
import
remember
from
pyramid.view
import
view_config
from
opensipkd.base
import
get_params
from
opensipkd.base
import
get_params
,
get_urls
from
opensipkd.base.tools.api
import
rpc_auth
from
.base_views
import
BaseView
...
...
@@ -68,11 +68,11 @@ class Home(BaseView):
log
.
info
(
request
.
session
.
peek_flash
())
if
modules_default
:
if
request
.
user
and
request
.
has_permission
(
modules_default
):
return
HTTPFound
(
location
=
request
.
route_url
(
modules_default
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
modules_default
)
))
elif
request
.
user
and
len
(
request
.
session
.
peek_flash
(
'error'
))
<
2
:
return
HTTPFound
(
location
=
request
.
route_url
(
modules_default
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
modules_default
)
))
elif
not
request
.
user
:
return
HTTPFound
(
location
=
request
.
route_url
(
modules_default
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
modules_default
)
))
logo
=
get_params
(
'logo'
,
"static/img/logo.png"
)
home_tpl
=
get_params
(
"home_tpl"
)
if
home_tpl
:
...
...
@@ -87,7 +87,7 @@ class Home(BaseView):
@view_config
(
context
=
HTTPForbidden
,
renderer
=
'templates/403.pt'
)
def
http_forbidden
(
request
):
if
not
request
.
is_authenticated
:
next_url
=
request
.
route_url
(
'login'
,
_query
=
{
'next'
:
request
.
url
}
)
next_url
=
get_urls
(
request
.
route_url
(
'login'
,
_query
=
{
'next'
:
request
.
url
})
)
return
HTTPSeeOther
(
location
=
next_url
)
request
.
response
.
status
=
403
...
...
opensipkd/base/views/base_views.py
View file @
de87932
...
...
@@ -11,7 +11,8 @@ from opensipkd.tools.captcha import get_captcha
from
pyramid.httpexceptions
import
HTTPFound
from
.common
import
DataTables
from
..
import
DBSession
,
get_params
from
..
import
DBSession
,
get_params
,
get_urls
from
from
opensipkd.tools
import
dmy
,
date_from_str
,
get_settings
,
get_ext
,
\
date_from_str
import
colander
...
...
@@ -168,10 +169,10 @@ class BaseView(object):
if
msg
:
self
.
ses
.
flash
(
msg
,
error
)
if
self
.
headers
:
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
),
return
HTTPFound
(
location
=
get_urls
(
self
.
req
.
route_url
(
self
.
list_route
)
),
headers
=
self
.
headers
)
else
:
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
))
return
HTTPFound
(
location
=
get_urls
(
self
.
req
.
route_url
(
self
.
list_route
)
))
def
form_validator
(
self
,
form
,
value
):
pass
...
...
@@ -218,7 +219,7 @@ class BaseView(object):
schema
=
self
.
list_schema
()
schema
=
schema
.
bind
(
request
=
self
.
req
)
table
=
DeTable
(
schema
,
action
=
self
.
req
.
route_url
(
self
.
list_route
),
action
=
get_urls
(
self
.
req
.
route_url
(
self
.
list_route
)
),
action_suffix
=
"/grid/act"
,
buttons
=
self
.
list_buttons
,
request
=
self
.
req
,
...
...
@@ -618,4 +619,4 @@ def need_verify():
def
get_url_captcha
(
request
):
captcha
=
get_captcha
(
request
)
return
os
.
path
.
join
(
request
.
route_url
(
'home'
),
'captcha'
,
captcha
)
return
os
.
path
.
join
(
get_urls
(
request
.
route_url
(
'home'
)
),
'captcha'
,
captcha
)
opensipkd/base/views/departemen.py
View file @
de87932
...
...
@@ -13,7 +13,7 @@ from sqlalchemy.orm import aliased
from
.company
import
company_widget
from
.upload
import
AddSchema
as
UploadSchema
from
opensipkd.models
import
DBSession
,
Departemen
,
Partner
,
PartnerDepartemen
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
ColumnDT
,
DataTables
,
BaseView
,
get_urls
SESS_ADD_FAILED
=
'Tambah departemen gagal'
SESS_EDIT_FAILED
=
'Edit departemen gagal'
...
...
@@ -87,7 +87,7 @@ class AddSchema(colander.Schema):
size
=
60
,
min_length
=
3
,
requirements
=
((
"typeahead"
,
None
),
(
"deform"
,
None
),
{
"js"
:
"opensipkd.base:static/js/form/departemen.js"
}),
values
=
f
"{request.route_url('departemen')}/hon/act"
)
values
=
get_urls
(
f
"{request.route_url('departemen')}/hon/act"
)
)
if
request
.
user
.
company_id
:
self
[
"company_id"
]
.
widget
=
widget
.
HiddenWidget
()
self
[
"company_id"
]
.
default
=
request
.
user
.
company_id
...
...
opensipkd/base/views/menus.py
View file @
de87932
...
...
@@ -7,7 +7,7 @@ from pyramid.view import (view_config, )
from
sqlalchemy.orm
import
aliased
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..
import
get_urls
_
=
TranslationStringFactory
(
"opensipkd"
)
SESS_ADD_FAILED
=
'Tambah menu gagal'
...
...
opensipkd/base/views/partner_base.py
View file @
de87932
...
...
@@ -7,6 +7,7 @@ from opensipkd.base.views.kecamatan import kecamatan_widget
from
opensipkd.base.views.provinsi
import
provinsi_widget
from
opensipkd.tools
import
mem_tmp_store
from
..
import
get_urls
class
NamaSchema
(
colander
.
Schema
):
...
...
@@ -132,8 +133,7 @@ class PartnerSchema(NamaSchema):
def
after_bind
(
self
,
schema
,
kwargs
):
request
=
kwargs
[
"request"
]
prefix
=
request
.
route_url
(
"home"
)
self
[
"provinsi_id"
]
.
slave_url
=
f
"{prefix}/dati2/select/act?provinsi_id="
self
[
"dati2_id"
]
.
slave_url
=
f
"{prefix}/kecamatan/select/act?dati2_id="
prefix
=
get_urls
(
request
.
route_url
(
"home"
)
)
self
[
"provinsi_id"
]
.
slave_url
=
f
"{prefix}/dati2/select/act?provinsi_id="
self
[
"dati2_id"
]
.
slave_url
=
f
"{prefix}/kecamatan/select/act?dati2_id="
self
[
"kecamatan_id"
]
.
slave_url
=
f
"{prefix}/desa/select/act?kecamatan_id="
opensipkd/base/views/register.py
View file @
de87932
...
...
@@ -47,6 +47,7 @@ from . import widget_os
from
.base_views
import
need_captcha
,
get_url_captcha
from
.user_login
import
regenerate_security_code
,
send_email_security_code
from
..views
import
BaseView
from
..
import
get_urls
_
=
TranslationStringFactory
(
'user'
)
...
...
@@ -146,7 +147,7 @@ def _show_error(request, msg):
def
show_error
(
request
,
msg
):
_show_error
(
request
,
msg
)
return
HTTPFound
(
location
=
request
.
route_url
(
'home'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'home'
)
))
# def reg_buttons():
...
...
@@ -310,16 +311,16 @@ class Registrasi(BaseView):
def
view_register
(
self
):
if
"g_state"
in
self
.
req
.
cookies
:
if
"id_info"
not
in
self
.
ses
or
not
self
.
ses
[
"id_info"
]:
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
"login"
))
return
HTTPFound
(
location
=
get_urls
(
self
.
req
.
route_url
(
"login"
)
))
request
=
self
.
req
reg_form
=
get_params
(
"reg_form"
)
if
reg_form
:
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
reg_form
))
return
HTTPFound
(
location
=
get_urls
(
self
.
req
.
route_url
(
reg_form
)
))
self
.
bindings
=
dict
(
user
=
None
)
if
request
.
user
:
return
HTTPFound
(
location
=
request
.
route_url
(
"profile"
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
"profile"
)
))
return
super
(
Registrasi
,
self
)
.
view_add
()
...
...
@@ -365,7 +366,7 @@ class Registrasi(BaseView):
self
.
buttons
=
(
btn_save
,
btn_cancel
)
reg_form
=
get_params
(
"reg_form"
)
if
reg_form
:
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
reg_form
))
return
HTTPFound
(
location
=
get_urls
(
self
.
req
.
route_url
(
reg_form
)
))
self
.
bindings
=
dict
(
user
=
self
.
req
.
user
)
resp
=
super
(
Registrasi
,
self
)
.
view_edit
()
if
not
resp
:
...
...
opensipkd/base/views/upload.py
View file @
de87932
...
...
@@ -13,12 +13,12 @@ from opensipkd.tools import (
)
from
pyramid.httpexceptions
import
HTTPFound
from
pyramid.view
import
view_config
from
..
import
get_urls
# from unggah import DbUpload
def
route_list
(
request
,
p
=
{}):
q
=
dict_to_str
(
p
)
return
HTTPFound
(
location
=
request
.
route_url
(
'upload-logo'
,
_query
=
q
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'upload-logo'
,
_query
=
q
)
))
##########
...
...
opensipkd/base/views/user_group.py
View file @
de87932
...
...
@@ -19,7 +19,7 @@ from opensipkd.models import (
UserGroup
,
)
from
datatables
import
ColumnDT
,
DataTables
from
..
import
get_urls
SESS_ADD_FAILED
=
'Tambah user gagal'
SESS_EDIT_FAILED
=
'Edit user gagal'
...
...
@@ -160,7 +160,7 @@ def save_request(values, request, row=None):
def
route_list
(
request
):
return
HTTPFound
(
location
=
request
.
route_url
(
'user-group'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'user-group'
)
))
def
session_failed
(
request
,
session_name
):
...
...
@@ -186,7 +186,7 @@ def view_add(request):
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
request
.
session
[
SESS_ADD_FAILED
]
=
e
.
render
()
return
HTTPFound
(
location
=
request
.
route_url
(
'user-group-add'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'user-group-add'
)
))
save_request
(
controls_dicted
,
request
)
return
route_list
(
request
)
elif
SESS_ADD_FAILED
in
request
.
session
:
...
...
@@ -225,8 +225,8 @@ def view_edit(request):
c
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
request
.
session
[
SESS_EDIT_FAILED
]
=
e
.
render
()
return
HTTPFound
(
location
=
request
.
route_url
(
'user-group-edit'
,
id
=
row
.
id
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'user-group-edit'
,
id
=
row
.
id
))
)
save_request
(
dict
(
controls
),
request
,
row
)
return
route_list
(
request
)
elif
SESS_EDIT_FAILED
in
request
.
session
:
...
...
opensipkd/base/views/user_login.py
View file @
de87932
...
...
@@ -44,7 +44,7 @@ from pyramid_mailer.message import Message
from
opensipkd.tools.buttons
import
btn_cancel
from
opensipkd.tools.form_api
import
formfield2dict
from
..
import
get_urls
log
=
__import__
(
"logging"
)
.
getLogger
(
__name__
)
...
...
@@ -168,11 +168,11 @@ class ViewLogin(BaseView):
next_url
=
request
.
params
.
get
(
'next'
,
request
.
referrer
)
login_tpl
=
get_params
(
'login_tpl'
,
'templates/login.pt'
)
if
not
next_url
:
next_url
=
request
.
route_url
(
'home'
)
next_url
=
get_urls
(
request
.
route_url
(
'home'
)
)
if
request
.
authenticated_userid
:
# (request):
request
.
session
.
flash
(
'Anda sudah login'
,
'error'
)
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
)
schema
=
Login
(
validator
=
login_validator
)
form
=
Form
(
schema
,
buttons
=
(
'login'
,))
...
...
@@ -187,7 +187,7 @@ class ViewLogin(BaseView):
msg
=
'Login gagal'
set_user_log
(
msg
,
request
,
log
,
identity
)
request
.
session
.
flash
(
msg
,
'error'
)
return
HTTPFound
(
location
=
request
.
route_url
(
'login'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'login'
)
))
values
=
dict
(
c
)
# start cek external module
...
...
@@ -206,19 +206,19 @@ class ViewLogin(BaseView):
except
Exception
as
e
:
log
.
warn
(
str
(
e
))
request
.
session
.
flash
(
str
(
e
),
"error"
)
return
HTTPFound
(
location
=
request
.
route_url
(
'login'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'login'
)
))
else
:
login
=
LoginUser
(
self
.
req
)
if
not
login
.
login
(
values
,
user
):
request
.
session
.
flash
(
login
.
message
,
"error"
)
next_url
=
f
"{request.route_url('login')}?next={next_url}"
next_url
=
get_urls
(
f
"{request.route_url('login')}?next={next_url}"
)
return
HTTPFound
(
location
=
next_url
)
return
redirect_login
(
request
,
user
)
elif
'register'
in
request
.
POST
:
register_form
=
get_params
(
"register_form"
,
'register'
)
return
HTTPFound
(
location
=
request
.
route_url
(
register_form
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
register_form
)
))
elif
'login failed'
in
request
.
session
:
r
=
dict
(
form
=
request
.
session
[
'login failed'
])
...
...
@@ -236,13 +236,13 @@ class ViewLogin(BaseView):
login_tpl
,
dict
(
form
=
form
.
render
(),
message
=
message
,
url
=
request
.
route_url
(
'login'
),
url
=
get_urls
(
request
.
route_url
(
'login'
)
),
next_url
=
next_url
,
login
=
login
,
),
request
=
request
)
except
Oauth2UserExc
as
e
:
request
.
session
.
flash
(
str
(
e
),
'error'
)
return
HTTPFound
(
location
=
request
.
route_url
(
'login'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'login'
)
))
if
user
and
user
.
status
==
1
:
return
redirect_login
(
request
,
user
)
...
...
@@ -250,7 +250,7 @@ class ViewLogin(BaseView):
if
login_tpl
==
'templates/login.pt'
:
return
dict
(
form
=
form
.
render
(),
message
=
message
,
url
=
request
.
route_url
(
'login'
),
url
=
get_urls
(
request
.
route_url
(
'login'
)
),
next_url
=
next_url
,
login
=
login
,
)
...
...
@@ -259,7 +259,7 @@ class ViewLogin(BaseView):
request
=
request
,
value
=
dict
(
form
=
form
.
render
(),
message
=
message
,
url
=
request
.
route_url
(
'login'
),
url
=
get_urls
(
request
.
route_url
(
'login'
)
),
next_url
=
next_url
,
login
=
login
,
),
)
...
...
@@ -272,7 +272,7 @@ def redirect_login(request, user):
next_url
=
request
.
params
.
get
(
'next'
)
if
not
next_url
and
request
.
matched_route
.
name
==
'login'
:
url
=
get_params
(
'modules_default'
,
'home'
)
return
HTTPFound
(
location
=
request
.
route_url
(
url
),
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
url
)
),
headers
=
headers
)
return
HTTPFound
(
location
=
next_url
,
headers
=
headers
)
...
...
@@ -299,8 +299,8 @@ class Logout(BaseView):
form
=
self
.
get_form
(
LogoutSchema
,
buttons
=
(
btn_cancel
,
btn_logout
))
if
'cancel'
in
request
.
POST
or
"home"
in
request
.
POST
:
log
.
info
(
request
.
route_url
(
'home'
))
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
,
)
log
.
info
(
get_urls
(
request
.
route_url
(
'home'
)
))
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
,
)
)
elif
"logout"
in
request
.
POST
:
form
=
self
.
get_form
(
LogoutSchema
,
buttons
=
(
btn_home
,))
...
...
@@ -343,7 +343,7 @@ def change_password_validator(form, value):
def
view_change_password
(
request
):
if
request
.
authenticated_userid
:
request
.
session
.
flash
(
'Anda sudah login'
,
'error'
)
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
)
schema
=
ChangePassword
(
validator
=
change_password_validator
)
btn_save
=
Button
(
'save'
,
_
(
'Simpan'
))
...
...
@@ -353,7 +353,7 @@ def view_change_password(request):
if
not
request
.
POST
:
return
dict
(
form
=
form
.
render
())
if
'save'
not
in
request
.
POST
:
return
HTTPFound
(
location
=
request
.
route_url
(
'login'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'login'
)
))
items
=
request
.
POST
.
items
()
try
:
c
=
form
.
validate
(
items
)
...
...
@@ -365,7 +365,7 @@ def view_change_password(request):
if
not
user
or
\
create_now
()
-
user
.
security_code_date
>
one_hour
:
request
.
session
.
flash
(
'Security code expired'
,
'error'
)
return
HTTPFound
(
location
=
request
.
route_url
(
'login'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'login'
)
))
user
.
security_code
=
None
UserService
.
set_password
(
user
,
c
[
'new_password'
])
...
...
@@ -373,7 +373,7 @@ def view_change_password(request):
headers
=
get_login_headers
(
request
,
user
)
request
.
session
.
flash
(
'Password baru Anda sudah disimpan.'
)
set_user_log
(
"Change Password"
,
request
,
log
)
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
,
headers
=
headers
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
,
headers
=
headers
)
######################
...
...
@@ -403,12 +403,12 @@ def view_recreate_api_key(request):
d
=
dict
(
api_key
=
request
.
user
.
api_key
)
return
dict
(
form
=
form
.
render
(
appstruct
=
d
))
if
'recreate'
not
in
request
.
POST
:
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
)
request
.
user
.
api_key
=
api_key
=
generate_api_key
()
DBSession
.
add
(
request
.
user
)
msg
=
'API Key Anda yang baru {}'
.
format
(
api_key
)
request
.
session
.
flash
(
msg
)
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
)
##################
...
...
@@ -508,7 +508,7 @@ def regenerate_security_code(user, hour=1.0):
renderer
=
'templates/reset-password.pt'
)
def
view_reset_password
(
request
):
if
request
.
authenticated_userid
:
return
HTTPFound
(
location
=
f
"{request.route_url('home')}"
)
return
HTTPFound
(
location
=
get_urls
(
f
"{request.route_url('home')}"
)
)
resp
=
dict
(
title
=
_
(
'Reset password'
))
schema
=
ResetPassword
(
validator
=
reset_password_validator
)
...
...
@@ -530,7 +530,7 @@ def view_reset_password(request):
send_email_security_code
(
request
,
user
,
remain
,
'Reset password'
,
'reset-password-body'
,
'reset-password-body.tpl'
)
return
HTTPFound
(
location
=
request
.
route_url
(
'reset-password-sent'
))
return
HTTPFound
(
location
=
get_urls
(
request
.
route_url
(
'reset-password-sent'
)
))
resp
[
'form'
]
=
form
.
render
()
return
resp
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment