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 4e887e49
authored
Dec 27, 2022
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perbaikan cors
1 parent
e8b23832
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
78 additions
and
12 deletions
opensipkd/base/__init__.py
opensipkd/base/alembic/versions/671617e55c56_menus_add_valu_and_action.py
opensipkd/base/views/menus.py
opensipkd/models/menus.py
opensipkd/base/__init__.py
View file @
4e887e4
...
@@ -86,6 +86,12 @@ titles = {}
...
@@ -86,6 +86,12 @@ titles = {}
def
add_cors_headers_response_callback
(
event
):
def
add_cors_headers_response_callback
(
event
):
def
cors_headers
(
request
,
response
):
def
cors_headers
(
request
,
response
):
origin
=
request
.
headers
.
get
(
"Origin"
,
None
)
allowed_origin
=
get_params
(
"allowed_origin"
,
None
)
if
allowed_origin
:
if
origin
not
in
allowed_origin
.
split
(
'
\n
'
):
origin
=
None
response
.
headers
.
update
({
response
.
headers
.
update
({
# 'Access-Control-Allow-Origin': '*',
# 'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods'
:
'POST,GET,DELETE,PUT,OPTIONS'
,
'Access-Control-Allow-Methods'
:
'POST,GET,DELETE,PUT,OPTIONS'
,
...
@@ -93,10 +99,11 @@ def add_cors_headers_response_callback(event):
...
@@ -93,10 +99,11 @@ def add_cors_headers_response_callback(event):
'Access-Control-Allow-Credentials'
:
'true'
,
'Access-Control-Allow-Credentials'
:
'true'
,
'Access-Control-Max-Age'
:
'1728000'
,
'Access-Control-Max-Age'
:
'1728000'
,
})
})
if
'Access-Control-Allow-Origin'
not
in
response
.
headers
:
log
.
info
(
f
"{origin} {request.is_xhr}"
)
if
origin
:
response
.
headers
.
update
(
response
.
headers
.
update
(
{
'Access-Control-Allow-Origin'
:
'*'
})
{
'Access-Control-Allow-Origin'
:
origin
}
)
event
.
request
.
add_response_callback
(
cors_headers
)
event
.
request
.
add_response_callback
(
cors_headers
)
...
...
opensipkd/base/alembic/versions/671617e55c56_menus_add_valu_and_action.py
0 → 100644
View file @
4e887e4
"""menus add valu and action
Revision ID: 671617e55c56
Revises: f95c10a7ae98
Create Date: 2022-12-27 17:59:55.766347
"""
# revision identifiers, used by Alembic.
revision
=
'671617e55c56'
down_revision
=
'f95c10a7ae98'
branch_labels
=
None
depends_on
=
None
from
alembic
import
op
import
sqlalchemy
as
sa
def
upgrade
():
context
=
op
.
get_context
()
helpers
=
context
.
opts
[
'helpers'
]
if
not
helpers
.
table_has_column
(
'menus'
,
'valu'
):
op
.
add_column
(
'menus'
,
sa
.
Column
(
'valu'
,
sa
.
String
(
256
)))
if
not
helpers
.
table_has_column
(
'menus'
,
'meth'
):
op
.
add_column
(
'menus'
,
sa
.
Column
(
'meth'
,
sa
.
String
(
256
)))
if
not
helpers
.
table_has_column
(
'menus'
,
'page_typ'
):
op
.
add_column
(
'menus'
,
sa
.
Column
(
'page_typ'
,
sa
.
String
(
256
)))
def
downgrade
():
pass
opensipkd/base/views/menus.py
View file @
4e887e4
...
@@ -46,13 +46,23 @@ class AddSchema(colander.Schema):
...
@@ -46,13 +46,23 @@ class AddSchema(colander.Schema):
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
kode
=
colander
.
SchemaNode
(
colander
.
String
(),
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
validator
=
colander
.
Length
(
max
=
32
),
oid
=
"kode"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"nama"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"nama"
)
url
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"url"
,
valu
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"valu"
,
title
=
"URL/METHOD"
)
title
=
"Action"
)
meth
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"meth"
,
title
=
"Method"
)
page_typ
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"page_typ"
,
title
=
"Page Type"
)
icon
=
colander
.
SchemaNode
(
colander
.
String
(),
icon
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
class_name
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"url"
,
class_name
=
colander
.
SchemaNode
(
colander
.
String
(),
oid
=
"url"
,
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
need_login
=
colander
.
SchemaNode
(
colander
.
Boolean
())
need_login
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
RadioChoiceWidget
(
values
=
((
"-1"
,
"Unlogged"
),
(
"0"
,
"All"
),
(
"1"
,
"Logged User"
),
)))
title
=
colander
.
SchemaNode
(
colander
.
String
())
title
=
colander
.
SchemaNode
(
colander
.
String
())
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
oid
=
"status"
)
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
oid
=
"status"
)
...
@@ -88,6 +98,14 @@ class ListSchema(colander.Schema):
...
@@ -88,6 +98,14 @@ class ListSchema(colander.Schema):
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
nama
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Nama"
)
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
title
=
"Status"
,
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
title
=
"Status"
,
width
=
'50pt'
)
width
=
'50pt'
)
need_login
=
colander
.
SchemaNode
(
colander
.
Integer
(),
title
=
"Login"
,
width
=
'50pt'
)
valu
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Value"
,
width
=
'50pt'
)
meth
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Method"
,
width
=
'50pt'
)
page_typ
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Type"
,
width
=
'50pt'
)
level_id
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Level"
,
level_id
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Level"
,
width
=
'50pt'
)
width
=
'50pt'
)
parent
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Induk"
,
parent
=
colander
.
SchemaNode
(
colander
.
String
(),
title
=
"Induk"
,
...
@@ -121,14 +139,14 @@ class ViewMenus(BaseView):
...
@@ -121,14 +139,14 @@ class ViewMenus(BaseView):
else
:
else
:
current
=
None
current
=
None
found
=
Menus
.
query_kode
(
value
[
'kode'
])
found
=
Menus
.
query_kode
(
value
[
'kode'
])
.
first
()
if
current
:
if
current
:
if
found
and
found
.
id
!=
current
.
id
:
if
found
and
found
.
id
!=
current
.
id
:
err_kode
()
err_kode
()
elif
found
:
elif
found
:
err_kode
()
err_kode
()
found
=
Menus
.
query_nama
(
value
[
'nama'
])
found
=
Menus
.
query_nama
(
value
[
'nama'
])
.
first
()
if
current
:
if
current
:
if
found
and
found
.
id
!=
current
.
id
:
if
found
and
found
.
id
!=
current
.
id
:
err_nama
()
err_nama
()
...
@@ -164,6 +182,7 @@ class ViewMenus(BaseView):
...
@@ -164,6 +182,7 @@ class ViewMenus(BaseView):
permission
=
'view'
)
permission
=
'view'
)
def
view_act
(
self
):
def
view_act
(
self
):
request
=
self
.
req
request
=
self
.
req
params
=
request
.
params
params
=
request
.
params
url_dict
=
request
.
matchdict
url_dict
=
request
.
matchdict
table_alias
=
aliased
(
Menus
)
table_alias
=
aliased
(
Menus
)
...
@@ -173,13 +192,16 @@ class ViewMenus(BaseView):
...
@@ -173,13 +192,16 @@ class ViewMenus(BaseView):
ColumnDT
(
Menus
.
nama
,
mData
=
'nama'
),
ColumnDT
(
Menus
.
nama
,
mData
=
'nama'
),
ColumnDT
(
table_alias
.
nama
,
mData
=
'parent'
),
ColumnDT
(
table_alias
.
nama
,
mData
=
'parent'
),
ColumnDT
(
Menus
.
status
,
mData
=
'status'
),
ColumnDT
(
Menus
.
status
,
mData
=
'status'
),
ColumnDT
(
Menus
.
level_id
,
mData
=
'level_id'
),
]
ColumnDT
(
Menus
.
need_login
,
mData
=
'need_login'
),
ColumnDT
(
Menus
.
level_id
,
mData
=
'level_id'
),
ColumnDT
(
Menus
.
meth
,
mData
=
'meth'
),
ColumnDT
(
Menus
.
valu
,
mData
=
'valu'
),
ColumnDT
(
Menus
.
page_typ
,
mData
=
'page_typ'
),
]
query
=
Menus
.
query_grid
()
\
query
=
Menus
.
query_grid
()
\
.
outerjoin
(
table_alias
,
Menus
.
parent_id
==
table_alias
.
id
)
.
outerjoin
(
table_alias
,
Menus
.
parent_id
==
table_alias
.
id
)
query
=
self
.
filter_company
(
query
)
query
=
self
.
filter_company
(
query
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'hon'
:
elif
url_dict
[
'act'
]
==
'hon'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
term
=
'term'
in
params
and
params
[
'term'
]
or
''
q
=
Menus
.
query
()
.
\
q
=
Menus
.
query
()
.
\
...
...
opensipkd/models/menus.py
View file @
4e887e4
...
@@ -22,7 +22,10 @@ class Menus(Base, NamaModel):
...
@@ -22,7 +22,10 @@ class Menus(Base, NamaModel):
parent_id
=
Column
(
Integer
,
ForeignKey
(
'public.menus.id'
))
parent_id
=
Column
(
Integer
,
ForeignKey
(
'public.menus.id'
))
level_id
=
Column
(
SmallInteger
)
level_id
=
Column
(
SmallInteger
)
order_id
=
Column
(
SmallInteger
)
order_id
=
Column
(
SmallInteger
)
url
=
Column
(
String
(
256
))
# value
valu
=
Column
(
String
(
256
))
# value/action
meth
=
Column
(
String
(
256
))
# new method
page_typ
=
Column
(
String
(
256
))
# PageType
url
=
Column
(
String
(
256
))
icon
=
Column
(
String
(
256
))
icon
=
Column
(
String
(
256
))
css_class
=
Column
(
String
(
256
))
css_class
=
Column
(
String
(
256
))
need_login
=
Column
(
SmallInteger
,
server_default
=
"1"
)
need_login
=
Column
(
SmallInteger
,
server_default
=
"1"
)
...
@@ -71,4 +74,3 @@ class Menus(Base, NamaModel):
...
@@ -71,4 +74,3 @@ class Menus(Base, NamaModel):
row
=
cls
.
query
()
.
filter
(
cls
.
kode
==
parent
)
.
first
()
row
=
cls
.
query
()
.
filter
(
cls
.
kode
==
parent
)
.
first
()
if
row
:
if
row
:
return
cls
.
query
()
.
filter
(
cls
.
parent_id
==
row
.
id
)
return
cls
.
query
()
.
filter
(
cls
.
parent_id
==
row
.
id
)
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