simialbi/yii2-ticket

yii2的票务系统

安装: 782

依赖: 3

建议者: 0

安全: 0

星星: 3

观察者: 3

分支: 4

开放问题: 0

类型:yii2-extension

2.0.0 2023-04-24 06:17 UTC

README

资源

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

$ php composer.phar require --prefer-dist simialbi/yii2-ticket

或者添加以下内容到您的 composer.json 中的 require 部分:

"simialbi/yii2-ticket": "^1.0.0"

使用方法

为了使用此模块,您需要

  1. 设置模块,以便模块可用。
  2. 创建一个用户身份类,该类扩展了UserInterface。
  3. 分配角色给用户

设置模块

在您的Yii配置文件的模块部分配置模块。

'modules' => [
    'ticket' => [
        'class' => 'simialbi\yii2\ticket\Module',
        //'richTextFields' => true,
        //'kanbanModule' => 'kanban',
        //'smsProvider' => 'smsProvider',
        //'canAssignTicketsToNonAgents' => false,
        //'on ticketCreated' => function ($event) {},
        //[...]
    ]
]

参数

事件

设置控制台配置并应用迁移

使用以下命令应用迁移: yii migrate --migration-namespaces='simialbi\yii2\ticket\migrations' 或配置您的控制台如下

[
    'controllerMap' => [
        'migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationNamespaces' => [
                'simialbi\yii2\ticket\migrations'
            ]
        ]
    ]
]

然后应用 yii migrate 命令。

请确保已配置authManager。迁移过程会创建本模块需要的角色。

创建身份

创建一个实现 simialbi\yii2\models\UserInterface 的身份类,例如。

<?php
use yii\db\ActiveRecord;
use simialbi\yii2\models\UserInterface;

class User extends ActiveRecord implements UserInterface
{
    /**
     * {@inheritDoc}
     */
    public static function tableName()
    {
        return 'user';
    }

    /**
     * {@inheritDoc}
     */
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }

    /**
     * {@inheritDoc}
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {
        return static::findOne(['access_token' => $token]);
    }

    /**
     * {@inheritDoc}
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * {@inheritDoc}
     */
    public function getAuthKey()
    {
        return $this->auth_key;
    }

    /**
     * {@inheritDoc}
     */
    public function validateAuthKey($authKey)
    {
        return $this->getAuthKey() === $authKey;
    }

    /**
     * {@inheritDoc}
     */
    public function getImage() {
        return $this->image;
    }

    /**
     * {@inheritDoc}
     */
    public function getName() {
        return trim($this->first_name . ' ' . $this->last_name);
    }

    /**
     * {@inheritDoc}
     */
    public function getEmail() {
        return $this->email;
    }

    /**
     * {@inheritDoc}
     */
    public function getMobile() {
        return $this->mobile;
    }

    /**
     * {@inheritDoc}
     */
    public static function findIdentities() {
        return static::find()->all();
    }
}

创建此类后,将其定义为您的应用程序配置中的身份类

'components' => [
    'user' => [
        'identityClass' => 'app\models\User'
    ]
]

分配角色给用户

迁移过程创建了本模块需要的角色和权限。您现在应该创建了以下角色

将角色分配给相应的用户。之后,您可以导航到 /ticket/topic 来管理您的票务主题(例如 IT)。任何被分配角色的用户都可以导航到 /ticket 来查看自己的票务(ticketAuthor)、分配主题的票务(ticketAgent)或所有主题的所有票务(ticketAdministrator)。

许可证

yii2-ticket 在MIT许可证下发布。有关详细信息,请参阅打包的 LICENSE

鸣谢