o
    mi	                     @   s   d Z ddlmZ ddlmZmZ ddlmZ dg dddg d	dd
ddgddZG dd deZeddddddZ	eddddddZ
eddddddZe	e
egZdS )uT   
用户模型 & 权限管理
三类权限：管理员、操作账号、审批账号
    )datetime)generate_password_hashcheck_password_hash)	UserMixinu	   管理员)readwriteapprovemanage_usersconfig)namepermissionsu   操作账号)r   r   applyu   审批账号r   r   )adminoperatorapproverc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Userc                 C   s0   || _ || _|| _|| _| | t | _d S N)idusernamerealnameroleset_passwordr   now
created_at)selfr   r   r   r   password r   #/root/zhuhai-gas-opc/models/user.py__init__   s   
zUser.__init__c                 C   s    | j tvrdS |t| j  d v S )u   检查是否有权限Fr   r   ROLES)r   
permissionr   r   r   has_permission$   s   
zUser.has_permissionc                 C   s   | j tv rt| j  d S | j S )u   获取角色显示名r   r   r   r   r   r   get_role_name*   s   
zUser.get_role_namec                 C   s   t || _d S r   )r   password_hashr   r   r   r   r   r   0   s   zUser.set_passwordc                 C   s   t | j|S r   )r   r%   r&   r   r   r   check_password3   s   zUser.check_passwordc                 C   s$   | j | j| j| j|  | j dS )N)r   r   r   r   	role_namer   )r   r   r   r   r$   r   	isoformatr#   r   r   r   to_dict6   s   zUser.to_dictN)	__name__
__module____qualname__r   r"   r$   r   r'   r*   r   r   r   r   r      s    r      r   u   系统管理员admin123)r   r   r   r   r      	operator1u   操作人员1r   123456   	approver1u   审批人员1r   N)__doc__r   werkzeug.securityr   r   flask_loginr   r    r   default_adminr1   r4   default_usersr   r   r   r   <module>   sP   '	