Your IP : 216.73.216.48


Current Path : /hdd/hdd11/www/codedit/models/
Upload File :
Current File : /hdd/hdd11/www/codedit/models/MembersBans.php

<?php

namespace app\models;

use Yii;
use yii\behaviors\TimestampBehavior;
use app\models\Members;

class MembersBans extends \yii\db\ActiveRecord {

    public $username;

    public static function tableName() {
        return '{{%members_bans}}';
    }

    public static function primaryKey() {
        return array('ban_id');
    }

    public function behaviors() {
        return [
            [
                'class' => TimestampBehavior::className(),
                'createdAtAttribute' => 'date_added',
                'updatedAtAttribute' => 'last_updated',
            ],
        ];
    }

    public function rules() {
        return [
            [['ban_id', 'ban_memberid', 'date_added', 'last_updated'], 'integer'],
            [['username', 'end_date'], 'safe'],
            ['end_date', 'date', 'format' => 'yyyy-mm-dd'],
            [['ban_ip'], 'string', 'max' => 40],
            [['reason'], 'string', 'max' => 255]
        ];
    }

    public function attributeLabels() {
        return [
            'ban_id' => Yii::t('app', 'ID на бана'),
            'ban_memberid' => Yii::t('app', 'Потребителско ID'),
            'username' => 'Потребителско име',
            'ban_ip' => Yii::t('app', 'IP адрес'),
            'end_date' => Yii::t('app', 'Дата на изтичане'),
            'reason' => Yii::t('app', 'Причина за бана'),
            'date_added' => Yii::t('app', 'Дата на добавяне'),
        ];
    }

    public function getMemberBans() {
        $bans = $this->find()->where('ban_memberid != :id', ['id' => 0]);
        return $bans;
    }

    public function getMemberBan($where) {
        if ($where) {
            $ban = $this->find()->where($where)->one();
            return $ban;
        }
    }

    public function getIpBans($where = []) {
        $bans = $this->find()->where('ban_ip != :ip', ['ip' => 0]);
        return $bans;
    }

    public function getMember() {
        return $this->hasOne(Members::className(), ['member_id' => 'ban_memberid']);
    }

    public function banMember($username, $endDate, $reason) {
        $memberInfo = Members::findByUsername($username);
        if ($memberInfo) {
            $this->ban_memberid = $memberInfo->member_id;
            $this->end_date = $endDate;
            $this->reason = $reason;
            if ($this->save()) {
                Yii::$app->session->setFlash('alert-success', 'Потребителят беше успешно блокиран.');
            } else {
                Yii::$app->session->setFlash('alert-error', 'Възникна грешка при блокирането на потребителя.');
            }
        } else {
            Yii::$app->session->setFlash('alert-error', 'Не съществува потребител с това потребителско име.');
        }
    }

    public function banIp($ip, $endDate, $reason) {
        $this->ban_ip = $ip;
        $this->end_date = $endDate;
        $this->reason = $reason;
        if ($this->save()) {
            Yii::$app->session->setFlash('alert-success', 'IP адресът беше успешно блокиран.');
        } else {
            Yii::$app->session->setFlash('alert-error', 'Възникна грешка при блокирането на IP адреса.');
        }
    }

    public function deleteBan($banInfo) {
        return $banInfo->delete();
    }

}