Commit 89ac5da4 by aagusti

perbaikan register

1 parent a8e83cf0
from datetime import datetime from datetime import datetime
import pytz import pytz
from ziggurat_foundations import ziggurat_model_init
import sqlalchemy as sa import sqlalchemy as sa
from pyramid.authorization import (Allow, Authenticated, ALL_PERMISSIONS) from pyramid.authorization import (Allow, Authenticated, ALL_PERMISSIONS)
from sqlalchemy import ( from sqlalchemy import (
Column, Integer, DateTime, ForeignKey, String) Column, Integer, DateTime, String)
from sqlalchemy.orm import (relationship, backref) from sqlalchemy.orm import (relationship, backref)
from ziggurat_foundations import ziggurat_model_init
from ziggurat_foundations.models.base import BaseModel from ziggurat_foundations.models.base import BaseModel
from ziggurat_foundations.models.external_identity import ExternalIdentityMixin from ziggurat_foundations.models.external_identity import ExternalIdentityMixin
from ziggurat_foundations.models.group import GroupMixin from ziggurat_foundations.models.group import GroupMixin
from ziggurat_foundations.models.group_permission import GroupPermissionMixin from ziggurat_foundations.models.group_permission import GroupPermissionMixin
from ziggurat_foundations.models.group_resource_permission import GroupResourcePermissionMixin from ziggurat_foundations.models.group_resource_permission import \
GroupResourcePermissionMixin
from ziggurat_foundations.models.resource import ResourceMixin from ziggurat_foundations.models.resource import ResourceMixin
from ziggurat_foundations.models.services.user import UserService from ziggurat_foundations.models.services.user import UserService
from ziggurat_foundations.models.user import UserMixin from ziggurat_foundations.models.user import UserMixin
from ziggurat_foundations.models.user_group import UserGroupMixin from ziggurat_foundations.models.user_group import UserGroupMixin
from ziggurat_foundations.models.user_permission import UserPermissionMixin from ziggurat_foundations.models.user_permission import UserPermissionMixin
from ziggurat_foundations.models.user_resource_permission import UserResourcePermissionMixin from ziggurat_foundations.models.user_resource_permission import \
from ziggurat_foundations.models.services.external_identity import ExternalIdentityService UserResourcePermissionMixin
from opensipkd.tools import as_timezone, get_timezone
from opensipkd.tools import as_timezone
from .base import CommonModel, DBSession, DefaultModel from .base import CommonModel, DBSession, DefaultModel
from .meta import Base from .meta import Base
# from .partner import Partner
class GroupPermission(GroupPermissionMixin, Base): class GroupPermission(GroupPermissionMixin, Base):
...@@ -74,13 +73,16 @@ class User(UserMixin, BaseModel, CommonModel, Base): ...@@ -74,13 +73,16 @@ class User(UserMixin, BaseModel, CommonModel, Base):
nullable=False, nullable=False,
default=datetime.utcnow) default=datetime.utcnow)
security_code_date = Column(DateTime(timezone=True), security_code_date = Column(DateTime(timezone=True),
default=datetime(2000, 1, 1, tzinfo=pytz.timezone('Asia/Jakarta')), default=datetime(2000, 1, 1,
tzinfo=pytz.timezone(
'Asia/Jakarta')),
server_default="2000-01-01 01:01+7", server_default="2000-01-01 01:01+7",
) )
api_key = Column(String(256)) api_key = Column(String(256))
partner_id = Column(Integer) #, ForeignKey(Partner.id)) partner_id = Column(Integer) # , ForeignKey(Partner.id))
company_id = Column(Integer) #, ForeignKey(Partner.id)) company_id = Column(Integer) # , ForeignKey(Partner.id))
#partners = relationship(Partner, backref=backref('users'))
# partners = relationship(Partner, backref=backref('users'))
def _get_password(self): def _get_password(self):
return self._password return self._password
...@@ -127,6 +129,7 @@ class User(UserMixin, BaseModel, CommonModel, Base): ...@@ -127,6 +129,7 @@ class User(UserMixin, BaseModel, CommonModel, Base):
def get_by_token(cls, token): def get_by_token(cls, token):
return DBSession.query(cls).filter_by(security_code=token) return DBSession.query(cls).filter_by(security_code=token)
# @classmethod # @classmethod
# def get_departemen_id(cls, user_id): # def get_departemen_id(cls, user_id):
# partner = Partner.query_user_id(user_id).first() # partner = Partner.query_user_id(user_id).first()
...@@ -160,6 +163,19 @@ class User(UserMixin, BaseModel, CommonModel, Base): ...@@ -160,6 +163,19 @@ class User(UserMixin, BaseModel, CommonModel, Base):
class ExternalIdentity(ExternalIdentityMixin, CommonModel, Base): class ExternalIdentity(ExternalIdentityMixin, CommonModel, Base):
user = relationship(User, backref=backref("external")) user = relationship(User, backref=backref("external"))
@classmethod
def query(cls):
return DBSession.query(cls)
@classmethod
def query_user(cls, user):
return cls.query().filter_by(local_user_id=user.id)
@classmethod
def external(cls, user):
return cls.query_user(user).count()>0
# class GroupRoutePermission(Base, CommonModel): # class GroupRoutePermission(Base, CommonModel):
# __tablename__ = 'groups_routes_permissions' # __tablename__ = 'groups_routes_permissions'
...@@ -194,7 +210,9 @@ class RootFactory: ...@@ -194,7 +210,9 @@ class RootFactory:
acl_name = 'group:{}'.format(gp.group_id) acl_name = 'group:{}'.format(gp.group_id)
self.__acl__.append((Allow, acl_name, gp.perm_name)) self.__acl__.append((Allow, acl_name, gp.perm_name))
def init_model(): def init_model():
ziggurat_model_init(User, Group, UserGroup, GroupPermission, UserPermission, ziggurat_model_init(User, Group, UserGroup, GroupPermission, UserPermission,
UserResourcePermission, GroupResourcePermission, Resource, UserResourcePermission, GroupResourcePermission,
Resource,
ExternalIdentity, passwordmanager=None) ExternalIdentity, passwordmanager=None)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!