use self::DEFUNCT_NO replace hardcode
add user permission edit for admin