/**
  * Handle the dma.friends.reward.redeemed event
  * @param Reward $reward
  * The reward model that has just been redeemed
  * @param User $user
  * The user that redeemed the reward
  */
 public function onRewardRedeemed($reward, $user)
 {
     $data = ['reward' => $reward, 'user' => $user];
     // Send an email to the user that redeemed the reward
     if ($reward->enable_email) {
         Mail::send($reward->email_template, $data, function ($message) use($reward, $user) {
             $message->to($user->email, $user->full_name);
         });
     }
     if ($reward->enable_admin_email) {
         Mail::send($reward->admin_email_template, $data, function ($message) use($reward, $user) {
             // If a group is configured email those users
             if (!empty($reward->admin_email_group)) {
                 $group = UserGroup::find($reward->admin_email_group);
                 foreach ($group->users as $user) {
                     $message->to($user->email, $user->first_name . ' ' . $user->last_name);
                 }
             }
             // If an individual email is configured email that person
             if (!empty($reward->admin_email_address)) {
                 $message->to($reward->admin_email_address, 'Anonymous');
             }
         });
     }
     // Print the reward if user is at a kiosk
     $location = LocationManager::getLocation();
     if ($location) {
         $printManager = new PrintManager($location, $user);
         $printManager->printCoupon($reward);
     }
 }
Esempio n. 2
0
 public function getAdminEmailGroupOptions()
 {
     $options[] = 'None';
     $groups = UserGroup::all();
     foreach ($groups as $group) {
         $options[$group->id] = $group->name;
     }
     return $options;
 }
Esempio n. 3
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate()) {
         $user = new User();
         $user->type = $this->type;
         $user->userMobile = $this->userMobile;
         $user->setPassword($this->password);
         //            $user->generateAuthKey();
         if ($user->save()) {
             \backend\models\UserGroup::addUserToGroup($user->id, 'master');
             return $user;
         }
     }
     return null;
 }
Esempio n. 4
0
 /**
  * Add available permission fields to the User form.
  * Mark default groups as checked for new Users.
  */
 public function formExtendFields($form)
 {
     if ($form->getContext() == 'myaccount') {
         return;
     }
     if (!$this->user->isSuperUser()) {
         $form->removeField('permissions[superuser]');
     }
     /*
      * Add permissions tab
      */
     $form->addTabFields($this->generatePermissionFields());
     /*
      * Mark default groups
      */
     if (!$form->model->exists) {
         $defaultGroupIds = UserGroup::where('is_new_user_default', true)->lists('id');
         $groupField = $form->getField('groups');
         $groupField->value = $defaultGroupIds;
     }
 }
Esempio n. 5
0
 /**
  * Add available permission fields to the User form.
  * Mark default groups as checked for new Users.
  */
 protected function formExtendFields($form)
 {
     if ($form->getContext() == 'myaccount') {
         return;
     }
     $permissionFields = [];
     foreach (BackendAuth::listPermissions() as $permission) {
         $fieldName = 'permissions[' . $permission->code . ']';
         $fieldConfig = ['label' => $permission->label, 'comment' => $permission->comment, 'type' => 'balloon-selector', 'options' => [1 => 'backend::lang.user.allow', 0 => 'backend::lang.user.inherit', -1 => 'backend::lang.user.deny'], 'attributes' => ['data-trigger' => "input[name='User[permissions][superuser]']", 'data-trigger-type' => 'disable', 'data-trigger-condition' => 'checked'], 'span' => 'auto'];
         if (isset($permission->tab)) {
             $fieldConfig['tab'] = $permission->tab;
         }
         $permissionFields[$fieldName] = $fieldConfig;
     }
     $form->addTabFields($permissionFields);
     /*
      * Mark default groups
      */
     if (!$form->model->exists) {
         $defaultGroupIds = UserGroup::where('is_new_user_default', true)->lists('id');
         $groupField = $form->getField('groups');
         $groupField->value = $defaultGroupIds;
     }
 }
Esempio n. 6
0
 public function run()
 {
     $group = UserGroup::create(['name' => 'Owners', 'code' => UserGroup::DEFAULT_CODE, 'description' => 'Default group for website owners.', 'is_new_user_default' => false]);
     $user = User::create(['email' => static::$email, 'login' => static::$login, 'password' => static::$password, 'password_confirmation' => static::$password, 'first_name' => static::$firstName, 'last_name' => static::$lastName, 'permissions' => ['superuser' => 1], 'is_activated' => true]);
     $user->addGroup($group);
 }
Esempio n. 7
0
 /**
  * 普通用户组成员
  */
 public function actionGroupuser()
 {
     $view = \Yii::$app->view;
     $view->params['moduleName'] = '用户分组';
     $request = \Yii::$app->request;
     $groupId = $request->_get('groupId', '');
     $search = $request->_get('search', '');
     $where = 1;
     if (preg_match('/^1[0-9]{10}$/', $search)) {
         $where .= ' AND userMobile LIKE \'%' . $search . '%\'';
     } elseif (preg_match('/@/', $search)) {
         $where .= ' AND userEmail LIKE \'%' . $search . '%\'';
     } else {
         $where .= ' AND nickName LIKE \'%' . $search . '%\'';
     }
     $userModel = User::find()->where($where);
     $pageSize = \Yii::$app->params['pageSize'];
     $total = $userModel->count();
     $pagination = new Pagination(['defaultPageSize' => $pageSize, 'totalCount' => $total]);
     $data = $userModel->asArray()->offset($pagination->offset)->limit($pagination->limit)->all();
     $groupuser = UserGroup::find()->where('groupId=' . $groupId)->asArray()->All();
     foreach ($data as &$user) {
         foreach ($groupuser as $group) {
             if ($user['userId'] == $group['userId']) {
                 $user['inGroup'] = 1;
             }
         }
     }
     $token = Token::getToken();
     $userId = \Yii::$app->user->id;
     $savegroupuserIdentity = EasyHelpers::dataEncrypt('savegroupuser,' . $userId);
     return $this->render('groupuser', ['data' => $data, 'search' => $search, 'groupId' => $groupId, 'token' => $token, 'pagination' => $pagination, 'savegroupuserIdentity' => $savegroupuserIdentity]);
 }
 public function getGroupsOptions()
 {
     $result = [];
     foreach (UserGroup::all() as $group) {
         $result[$group->id] = [$group->name, $group->description];
     }
     return $result;
 }
Esempio n. 9
0
 public function run()
 {
     $group = UserGroup::create(['name' => 'Admins', 'code' => 'admins', 'description' => 'Default group for administrators', 'is_new_user_default' => true]);
     $user = User::create(['email' => static::$email, 'login' => static::$login, 'password' => static::$password, 'password_confirmation' => static::$password, 'first_name' => static::$firstName, 'last_name' => static::$lastName, 'permissions' => ['superuser' => 1], 'is_activated' => true]);
     $user->addGroup($group);
 }
Esempio n. 10
0
 public function run()
 {
     $group = UserGroup::create(['name' => 'Admins']);
     $user = User::create(['email' => static::$email, 'login' => static::$login, 'password' => static::$password, 'password_confirmation' => static::$password, 'first_name' => static::$firstName, 'last_name' => static::$lastName, 'permissions' => ['superuser' => 1], 'is_activated' => true]);
     $user->addGroup($group);
 }
Esempio n. 11
0
 /**
  * 组管理(编辑组成员)
  */
 public function actionSavegroupuser()
 {
     $request = \Yii::$app->request;
     $identity = Identity::checkIdentity('savegroupuser', '/app-backend/backend/adminmanage/savegroupuser');
     if (is_array($identity)) {
         return $identity;
     }
     $groupId = $request->_get('groupId', 0);
     $userId = $request->_get('userId', 0);
     if (!$groupId || !$userId) {
         return ['code' => 1, 'msg' => '数据非法', 'data' => []];
     }
     $check = UserGroup::find()->where('groupId=' . $groupId . ' And userId=' . $userId)->one();
     if ($check) {
         $res = UserGroup::deleteAll('groupId=' . $groupId . ' And userId=' . $userId);
     } else {
         $usergroup = new UserGroup();
         $usergroup->userId = $userId;
         $usergroup->groupId = $groupId;
         $res = $usergroup->save();
     }
     if ($res !== false) {
         return ['code' => 0, 'msg' => '操作成功', 'data' => []];
     } else {
         return ['code' => 2, 'msg' => '操作失败,请重试', 'data' => []];
     }
 }
Esempio n. 12
0
 public function boot()
 {
     $plugin_manager = \System\Classes\PluginManager::instance();
     // Walidacja tablicy
     Validator::extend('arrayed', function ($attribute, $value, $params) {
         foreach ($value as $key => $val) {
             $validation = true;
             for ($i = 1; $i < count($params); $i++) {
                 $validation = $validation && Validator::make($val, [$params[$i] => $params[0]])->fails();
             }
             if ($validation === true) {
                 return false;
             }
         }
         return true;
     });
     // Walidacja numeru telefonu
     Validator::extend('phone', function ($attribute, $value, $parameters) {
         return preg_match('/^(\\+|(00))?(\\([0-9]{2}\\))?([ -]?[0-9]{2,})+$/i', $value) && mb_strlen($value) >= 9 && mb_strlen($value) <= 18;
     });
     /**
      * Rozdzerzenie menu o prawidłowe urle do artykułów
      */
     if ($plugin_manager->hasPlugin('Flynsarmy.Menu')) {
         \Flynsarmy\Menu\Models\Menuitem::extend(function ($model) {
             $model->addDynamicMethod('beforeSave', function () use($model) {
                 $classes = ['Flynsarmy\\Menu\\MenuItemTypes\\BlogPost' => 'rainlab_blog_posts', 'Flynsarmy\\Menu\\MenuItemTypes\\BlogCategory' => 'rainlab_blog_categories'];
                 $column = ['post_id', 'category_id'];
                 if (array_key_exists(post('master_object_class'), $classes)) {
                     $object = Db::table($classes[post('master_object_class')])->find($model->master_object_id);
                     if ($object) {
                         $url = $object->url;
                         $model->url = $url;
                         $model->{$column[array_search(post('master_object_class'), $classes)]} = $model->master_object_id;
                         $model->selected_item_id = $model->selected_item_id ?: $url;
                     }
                 }
                 // usunięcie hosta z urla
                 $model->url = str_replace(\URL::to('/'), '', $model->url);
             });
         });
     }
     // Rozszerzenie pluginu Tags
     if ($plugin_manager->hasPlugin('Bedard.BlogTags')) {
         Tag::extend(function ($model) {
             $model->belongsToMany = ['posts' => ['Bm\\Field\\Models\\Post', 'table' => 'bedard_blogtags_post_tag', 'order' => 'published_at desc']];
         });
         // Extend the model
         Post::extend(function ($model) {
             // Relationship
             $model->belongsToMany['tags'] = ['Bedard\\BlogTags\\Models\\Tag', 'table' => 'bedard_blogtags_post_tag', 'order' => 'name'];
             // getTagboxAttribute()
             $model->addDynamicMethod('getTaglistAttribute', function () use($model) {
                 return $model->tags()->lists('name');
             });
             // setTagboxAttribute()
             $model->addDynamicMethod('setTaglistAttribute', function ($tags) use($model) {
                 $this->tags = $tags;
             });
         });
         // Attach tags to model
         Post::saved(function ($model) {
             if ($this->tags) {
                 $ids = [];
                 foreach ($this->tags as $name) {
                     $create = Tag::firstOrCreate(['name' => $name]);
                     $ids[] = $create->id;
                 }
                 $model->tags()->sync($ids);
             }
         });
     }
     /**
      * Problem z grupowaniem w zarządzaniu grupami
      * @todo usunąć po poprawce w octoberze
      */
     Backend\Models\UserGroup::extend(function ($model) {
         $model->belongsToMany['users_count'] = ['Backend\\Models\\User', 'table' => 'backend_users_groups', 'count' => true, 'key' => 'user_id'];
     });
     /**
      * Rozszerzanie pól bloga
      */
     Event::listen('backend.form.extendFields', function ($form) {
         if ($form->getController() instanceof \Bm\Field\Controllers\Posts && in_array($form->getContext(), ['create', 'update'])) {
             // Nadpisanie pola z tagami
             if (class_exists('\\Bedard\\BlogTags\\Plugin')) {
                 $form->removeField('tagbox');
             }
             // Generowanie pól szablonu
             $form->addTabFields($form->model->generateFields());
             // Ustawianie domyślnej daty publikacji
             $form->data->published_at = $form->data->published_at ?: Carbon::now();
         }
     });
     /**
      * Rozdzerzenie pól menu o id artykułukategorii
      */
     Event::listen('backend.list.extendColumns', function ($widget) {
         if ($widget->getController() instanceof \Flynsarmy\Menu\Controllers\Menus) {
             $widget->addColumns(['post_id' => ['hidden' => true], 'category_id' => ['hidden' => false]]);
         }
     });
     // Rejestracja rozszerzeń Twiga
     Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
         $twig = $controller->getTwig();
         $twig->addExtension(new \Bm\Field\Classes\TwigExcerpt());
         $twig->addExtension(new \Bm\Field\Classes\TwigThumbnail());
         $twig->addExtension(new \Bm\Field\Classes\TwigPostUrl());
         if ($page) {
             // Ustawianie aktywnego urla w menu
             $page->menu_url = empty($page->url) ? '/' : $page->url;
         }
     });
 }