From 85211481260c076ad5e2889b66465495c33429ef Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Thu, 24 May 2018 00:31:19 +0200 Subject: Many fixes, began user feed generator --- .../src/Controller/MemberController.php | 123 --------------------- .../src/Database/Migrations/v400/MembersTable.php | 33 ------ .../extend-user/src/Database/Models/Member.php | 118 -------------------- .../extend-user/src/Database/Models/MemberAux.php | 20 ---- .../src/Database/Scopes/MemberAuxScope.php | 35 ------ .../src/ServicesProvider/ServicesProvider.php | 25 ----- 6 files changed, 354 deletions(-) delete mode 100644 main/app/sprinkles/extend-user/src/Controller/MemberController.php delete mode 100644 main/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php delete mode 100644 main/app/sprinkles/extend-user/src/Database/Models/Member.php delete mode 100644 main/app/sprinkles/extend-user/src/Database/Models/MemberAux.php delete mode 100644 main/app/sprinkles/extend-user/src/Database/Scopes/MemberAuxScope.php delete mode 100644 main/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php (limited to 'main/app/sprinkles/extend-user/src') diff --git a/main/app/sprinkles/extend-user/src/Controller/MemberController.php b/main/app/sprinkles/extend-user/src/Controller/MemberController.php deleted file mode 100644 index 0fcc481..0000000 --- a/main/app/sprinkles/extend-user/src/Controller/MemberController.php +++ /dev/null @@ -1,123 +0,0 @@ -getUserFromParams($args); - - // If the user no longer exists, forward to main user listing page - if (!$user) { - $usersPage = $this->ci->router->pathFor('uri_users'); - return $response->withRedirect($usersPage, 404); - } - - /** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */ - $authorizer = $this->ci->authorizer; - - /** @var UserFrosting\Sprinkle\Account\Database\Models\User $currentUser */ - $currentUser = $this->ci->currentUser; - - // Access-controlled page - if (!$authorizer->checkAccess($currentUser, 'uri_user', [ - 'user' => $user - ])) { - throw new ForbiddenException(); - } - - /** @var UserFrosting\Config\Config $config */ - $config = $this->ci->config; - - // Get a list of all locales - $locales = $config->getDefined('site.locales.available'); - - // Determine fields that currentUser is authorized to view - $fieldNames = ['user_name', 'name', 'email', 'locale', 'group', 'roles', 'address']; - - // Generate form - $fields = [ - // Always hide these - 'hidden' => ['theme'] - ]; - - // Determine which fields should be hidden - foreach ($fieldNames as $field) { - if (!$authorizer->checkAccess($currentUser, 'view_user_field', [ - 'user' => $user, - 'property' => $field - ])) { - $fields['hidden'][] = $field; - } - } - - // Determine buttons to display - $editButtons = [ - 'hidden' => [] - ]; - - if (!$authorizer->checkAccess($currentUser, 'update_user_field', [ - 'user' => $user, - 'fields' => ['name', 'email', 'locale'] - ])) { - $editButtons['hidden'][] = 'edit'; - } - - if (!$authorizer->checkAccess($currentUser, 'update_user_field', [ - 'user' => $user, - 'fields' => ['flag_enabled'] - ])) { - $editButtons['hidden'][] = 'enable'; - } - - if (!$authorizer->checkAccess($currentUser, 'update_user_field', [ - 'user' => $user, - 'fields' => ['flag_verified'] - ])) { - $editButtons['hidden'][] = 'activate'; - } - - if (!$authorizer->checkAccess($currentUser, 'update_user_field', [ - 'user' => $user, - 'fields' => ['password'] - ])) { - $editButtons['hidden'][] = 'password'; - } - - if (!$authorizer->checkAccess($currentUser, 'update_user_field', [ - 'user' => $user, - 'fields' => ['roles'] - ])) { - $editButtons['hidden'][] = 'roles'; - } - - if (!$authorizer->checkAccess($currentUser, 'delete_user', [ - 'user' => $user - ])) { - $editButtons['hidden'][] = 'delete'; - } - - return $this->ci->view->render($response, 'pages/user.html.twig', [ - 'user' => $user, - 'locales' => $locales, - 'fields' => $fields, - 'tools' => $editButtons - ]); - } -} diff --git a/main/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php b/main/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php deleted file mode 100644 index fe5aa93..0000000 --- a/main/app/sprinkles/extend-user/src/Database/Migrations/v400/MembersTable.php +++ /dev/null @@ -1,33 +0,0 @@ -schema->hasTable('members')) { - $this->schema->create('members', function (Blueprint $table) { - $table->increments('id'); - $table->string('city', 255)->nullable(); - $table->string('country', 255)->nullable(); - - $table->engine = 'InnoDB'; - $table->collation = 'utf8_unicode_ci'; - $table->charset = 'utf8'; - $table->foreign('id')->references('id')->on('users'); - }); - } - } - - public function down() { - $this->schema->drop('members'); - } -} diff --git a/main/app/sprinkles/extend-user/src/Database/Models/Member.php b/main/app/sprinkles/extend-user/src/Database/Models/Member.php deleted file mode 100644 index 094d14c..0000000 --- a/main/app/sprinkles/extend-user/src/Database/Models/Member.php +++ /dev/null @@ -1,118 +0,0 @@ -createAuxIfNotExists(); - - if ($member->auxType) { - // Set the aux PK, if it hasn't been set yet - if (!$member->aux->id) { - $member->aux->id = $member->id; - } - - $member->aux->save(); - } - }); - } -} - -class Member extends User -{ - use LinkMemberAux; - - protected $fillable = [ - 'user_name', - 'first_name', - 'last_name', - 'email', - 'locale', - 'theme', - 'group_id', - 'flag_verified', - 'flag_enabled', - 'last_activity_id', - 'password', - 'deleted_at', - 'city', - 'country' - ]; - - protected $auxType = 'UserFrosting\Sprinkle\ExtendUser\Database\Models\MemberAux'; - - /** - * Required to be able to access the `aux` relationship in Twig without needing to do eager loading. - * @see http://stackoverflow.com/questions/29514081/cannot-access-eloquent-attributes-on-twig/35908957#35908957 - */ - public function __isset($name) { - if (in_array($name, [ - 'aux' - ])) { - return TRUE; - } else { - return parent::__isset($name); - } - } - - /** - * Globally joins the `members` table to access additional properties. - */ - protected static function boot() { - parent::boot(); - - static::addGlobalScope(new MemberAuxScope); - } - - /** - * Custom mutator for Member property - */ - public function setCityAttribute($value) { - $this->createAuxIfNotExists(); - - $this->aux->city = $value; - } - - /** - * Custom mutator for Member property - */ - public function setCountryAttribute($value) { - $this->createAuxIfNotExists(); - - $this->aux->country = $value; - } - - /** - * Relationship for interacting with aux model (`members` table). - */ - public function aux() { - return $this->hasOne($this->auxType, 'id'); - } - - /** - * If this instance doesn't already have a related aux model (either in the db on in the current object), then create one - */ - protected function createAuxIfNotExists() { - if ($this->auxType && !count($this->aux)) { - // Create aux model and set primary key to be the same as the main user's - $aux = new $this->auxType; - - // Needed to immediately hydrate the relation. It will actually get saved in the bootLinkMemberAux method. - $this->setRelation('aux', $aux); - } - } -} diff --git a/main/app/sprinkles/extend-user/src/Database/Models/MemberAux.php b/main/app/sprinkles/extend-user/src/Database/Models/MemberAux.php deleted file mode 100644 index 6612586..0000000 --- a/main/app/sprinkles/extend-user/src/Database/Models/MemberAux.php +++ /dev/null @@ -1,20 +0,0 @@ -getTable(); - // Hardcode the table name here, or you can access it using the classMapper and `getTable` - $auxTable = 'members'; - - // Specify columns to load from base table and aux table - $builder->addSelect( - "$baseTable.*", - "$auxTable.city as city", - "$auxTable.country as country" - ); - - // Join on matching `member` records - $builder->leftJoin($auxTable, function ($join) use ($baseTable, $auxTable) { - $join->on("$auxTable.id", '=', "$baseTable.id"); - }); - } -} diff --git a/main/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php b/main/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php deleted file mode 100644 index 22d8c7b..0000000 --- a/main/app/sprinkles/extend-user/src/ServicesProvider/ServicesProvider.php +++ /dev/null @@ -1,25 +0,0 @@ -extend('classMapper', function ($classMapper, $c) { - $classMapper->setClassMapping('user', 'UserFrosting\Sprinkle\ExtendUser\Database\Models\Member'); - return $classMapper; - }); - } -} -- cgit v1.2.3