diff --git a/backend/components/AdminMenuStructure.php b/backend/components/AdminMenuStructure.php index 340fba3..4573b18 100644 --- a/backend/components/AdminMenuStructure.php +++ b/backend/components/AdminMenuStructure.php @@ -146,6 +146,20 @@ class AdminMenuStructure{ 'items' => $items ]; + + ///////////////////////////// + // Hírlevelek + ///////////////////////////// + $items = []; + $items[] = ['label' => 'Hírlevelek', 'url' => ['/newsletter/index' , 'NewsletterSearch[start]' =>$todayDatetime,'NewsletterSearch[end]' => $tomorrowDatetime ] ]; + // $items[] = ['label' => 'Részletek aktiválása', 'url' => ['/ugiro/parts' ] ]; + // $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ]; + // $items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ]; + // $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ]; + $this->menuItems[] = ['label' => 'Hírlevél', 'url' => $this->emptyUrl, + 'items' => $items + ]; + } } diff --git a/backend/controllers/NewsletterController.php b/backend/controllers/NewsletterController.php index 41ae1d4..0582215 100644 --- a/backend/controllers/NewsletterController.php +++ b/backend/controllers/NewsletterController.php @@ -15,19 +15,33 @@ use common\components\Helper; /** * NewsletterController implements the CRUD actions for Newsletter model. */ -class NewsletterController extends Controller +class NewsletterController extends \backend\controllers\BackendController { + public function behaviors() { - return [ - 'verbs' => [ - 'class' => VerbFilter::className(), - 'actions' => [ - 'delete' => ['post'], - ], - ], - ]; + return [ + 'verbs' => [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['post'], + ], + ], + 'access' => [ + 'class' => \yii\filters\AccessControl::className(), + 'rules' => [ + // allow authenticated users + [ + 'actions' => ['create','index','view','update','delete'], + 'allow' => true, + 'roles' => ['admin','employee','reception'], + ], + // everything else is denied + ], + ], + ]; } + /** * Lists all Newsletter models. diff --git a/console/controllers/TicketController.php b/console/controllers/TicketController.php index 89d1033..a552546 100644 --- a/console/controllers/TicketController.php +++ b/console/controllers/TicketController.php @@ -108,6 +108,10 @@ class TicketController extends Controller { public function actionDaily(){ set_time_limit(0); $this->actionWarnExpire(); + } + + public function actionWeekly(){ + set_time_limit(0); $this->actionNewsletter(); } diff --git a/console/migrations/m160523_053901_alter_customer_set_default_newsletter_false.php b/console/migrations/m160523_053901_alter_customer_set_default_newsletter_false.php new file mode 100644 index 0000000..0fab929 --- /dev/null +++ b/console/migrations/m160523_053901_alter_customer_set_default_newsletter_false.php @@ -0,0 +1,30 @@ +execute("update customer set newsletter = 0"); + } + + public function down() + { + echo "m160523_053901_alter_customer_set_default_newsletter_false cannot be reverted.\n"; + + return false; + } + + /* + // Use safeUp/safeDown to run migration code within a transaction + public function safeUp() + { + } + + public function safeDown() + { + } + */ +} diff --git a/console/migrations/m160523_055217_add_customer_newsletter_token.php b/console/migrations/m160523_055217_add_customer_newsletter_token.php new file mode 100644 index 0000000..7c88a68 --- /dev/null +++ b/console/migrations/m160523_055217_add_customer_newsletter_token.php @@ -0,0 +1,39 @@ +addColumn("customer", "newsletter_token", "string" ); + + $customers = Customer::find()->all(); + + foreach ($customers as $customer ){ + $customer->newsletter_token = Yii::$app->security->generateRandomString() . '_' . time(); + $customer->save(); + } + + } + + public function down() + { + echo "m160523_055217_add_customer_newsletter_token cannot be reverted.\n"; + + return false; + } + + /* + // Use safeUp/safeDown to run migration code within a transaction + public function safeUp() + { + } + + public function safeDown() + { + } + */ +} diff --git a/frontend/controllers/CustomerController.php b/frontend/controllers/CustomerController.php index ec7e635..51e1189 100644 --- a/frontend/controllers/CustomerController.php +++ b/frontend/controllers/CustomerController.php @@ -218,10 +218,6 @@ class CustomerController extends Controller - - - - // s /** diff --git a/frontend/controllers/SiteController.php b/frontend/controllers/SiteController.php index 3619a2e..06f01ba 100644 --- a/frontend/controllers/SiteController.php +++ b/frontend/controllers/SiteController.php @@ -15,6 +15,8 @@ use yii\filters\AccessControl; use common\models\User; use common\components\Helper; use common\models\Log; +use common\models\Customer; +use yii\web\NotFoundHttpException; /** * Site controller @@ -176,6 +178,26 @@ class SiteController extends Controller { return $this->render('about'); } + + public function actionNewsletterUnsubscribe($id,$token) + { + + $customer = Customer::find() + ->andWhere(['id_customer' => $id ]) + ->andWhere(['newsletter_token' => $token]) + ->one(); + + + if ( !isset($customer)){ + throw new NotFoundHttpException("Az oldal nem található"); + } + + $customer->newsletter = 0; + $customer->newsletter_token = Yii::$app->security->generateRandomString() . '_' . time(); + $customer->save(); + + return $this->render("unsubscribe"); + } /** * Signs user up. diff --git a/frontend/views/site/unsubscribe.php b/frontend/views/site/unsubscribe.php new file mode 100644 index 0000000..ffb15f7 --- /dev/null +++ b/frontend/views/site/unsubscribe.php @@ -0,0 +1 @@ +Ön sikeresen leiratkozott a hírlevelünkről!