From e27f2dd202fdd2599ccf3fe1d3bc3c4078014488 Mon Sep 17 00:00:00 2001 From: Hugo Sales Date: Sat, 18 Dec 2021 16:18:43 +0000 Subject: [PATCH] [ENTITY] Remove Group entity, as groups are actors --- src/Entity/Group.php | 329 ------------------------------------------- 1 file changed, 329 deletions(-) delete mode 100644 src/Entity/Group.php diff --git a/src/Entity/Group.php b/src/Entity/Group.php deleted file mode 100644 index b346a8def2..0000000000 --- a/src/Entity/Group.php +++ /dev/null @@ -1,329 +0,0 @@ -. -// }}} - -namespace App\Entity; - -use App\Core\Cache; -use App\Core\DB\DB; -use App\Core\Entity; -use App\Core\Router\Router; -use App\Util\Exception\NotFoundException; -use App\Util\Nickname; -use DateTimeInterface; -use InvalidArgumentException; - -/** - * Entity for groups a user is in - * - * @category DB - * @package GNUsocial - * - * @author Zach Copley - * @copyright 2010 StatusNet Inc. - * @author Mikael Nordfeldth - * @copyright 2009-2014 Free Software Foundation, Inc http://www.fsf.org - * @author Hugo Sales - * @copyright 2020-2021 Free Software Foundation, Inc http://www.fsf.org - * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later - */ -class Group extends Entity -{ - // {{{ Autocode - // @codeCoverageIgnoreStart - private int $id; - private int $actor_id; - private ?string $nickname; - private ?string $fullname; - private ?string $homepage; - private ?string $description; - private ?bool $is_local; - private ?string $location; - private ?string $original_logo; - private ?string $homepage_logo; - private ?string $stream_logo; - private ?string $mini_logo; - private ?string $uri; - private ?string $mainpage; - private ?int $join_policy; - private ?int $force_scope; - private DateTimeInterface $created; - private DateTimeInterface $modified; - - public function setId(int $id): self - { - $this->id = $id; - return $this; - } - - public function getId(): int - { - return $this->id; - } - - public function setActorId(int $actor_id): self - { - $this->actor_id = $actor_id; - return $this; - } - - public function getActorId(): int - { - return $this->actor_id; - } - - public function setNickname(?string $nickname): self - { - $this->nickname = $nickname; - return $this; - } - - public function getNickname(): ?string - { - return $this->nickname; - } - - public function setFullname(?string $fullname): self - { - $this->fullname = $fullname; - return $this; - } - - public function getFullname(): ?string - { - return $this->fullname; - } - - public function setHomepage(?string $homepage): self - { - $this->homepage = $homepage; - return $this; - } - - public function getHomepage(): ?string - { - return $this->homepage; - } - - public function setDescription(?string $description): self - { - $this->description = $description; - return $this; - } - - public function getDescription(): ?string - { - return $this->description; - } - - public function setIsLocal(?bool $is_local): self - { - $this->is_local = $is_local; - return $this; - } - - public function getIsLocal(): ?bool - { - return $this->is_local; - } - - public function setLocation(?string $location): self - { - $this->location = $location; - return $this; - } - - public function getLocation(): ?string - { - return $this->location; - } - - public function setOriginalLogo(?string $original_logo): self - { - $this->original_logo = $original_logo; - return $this; - } - - public function getOriginalLogo(): ?string - { - return $this->original_logo; - } - - public function setHomepageLogo(?string $homepage_logo): self - { - $this->homepage_logo = $homepage_logo; - return $this; - } - - public function getHomepageLogo(): ?string - { - return $this->homepage_logo; - } - - public function setStreamLogo(?string $stream_logo): self - { - $this->stream_logo = $stream_logo; - return $this; - } - - public function getStreamLogo(): ?string - { - return $this->stream_logo; - } - - public function setMiniLogo(?string $mini_logo): self - { - $this->mini_logo = $mini_logo; - return $this; - } - - public function getMiniLogo(): ?string - { - return $this->mini_logo; - } - - public function setUri(?string $uri): self - { - $this->uri = $uri; - return $this; - } - - public function getUri(): ?string - { - return $this->uri; - } - - public function setMainpage(?string $mainpage): self - { - $this->mainpage = $mainpage; - return $this; - } - - public function getMainpage(): ?string - { - return $this->mainpage; - } - - public function setJoinPolicy(?int $join_policy): self - { - $this->join_policy = $join_policy; - return $this; - } - - public function getJoinPolicy(): ?int - { - return $this->join_policy; - } - - public function setForceScope(?int $force_scope): self - { - $this->force_scope = $force_scope; - return $this; - } - - public function getForceScope(): ?int - { - return $this->force_scope; - } - - public function setCreated(DateTimeInterface $created): self - { - $this->created = $created; - return $this; - } - - public function getCreated(): DateTimeInterface - { - return $this->created; - } - - public function setModified(DateTimeInterface $modified): self - { - $this->modified = $modified; - return $this; - } - - public function getModified(): DateTimeInterface - { - return $this->modified; - } - - // @codeCoverageIgnoreEnd - // }}} Autocode - - public function getActor(): Actor - { - return Actor::getById($this->getId()); - } - - public static function getByNickname(string $nickname, ?Actor $actor = null): ?self - { - $nickname = Nickname::normalize($nickname, check_already_used: false); - $group = null; - try { - $group = Cache::get('group-nick-' . $nickname, fn () => DB::findOneBy('group', ['nickname' => $nickname])); - // TODO check group scope with $actor - } catch (NotFoundException) { - throw new InvalidArgumentException; - } - return $group; - } - - public function getUrl(): string - { - return Router::url('group_nickname', ['actor_nickname' => $this->getNickname()]); - } - - public static function schemaDef(): array - { - return [ - 'name' => '`group`', - 'fields' => [ - 'id' => ['type' => 'serial', 'not null' => true], - 'actor_id' => ['type' => 'int', 'foreign key' => true, 'target' => 'Actor.id', 'multiplicity' => 'many to one', 'not null' => true, 'description' => 'foreign key to actor table'], - 'nickname' => ['type' => 'varchar', 'length' => 64, 'description' => 'nickname for addressing'], - 'fullname' => ['type' => 'varchar', 'length' => 191, 'description' => 'display name'], - 'homepage' => ['type' => 'varchar', 'length' => 191, 'description' => 'URL, cached so we dont regenerate'], - 'description' => ['type' => 'text', 'description' => 'group description'], - 'is_local' => ['type' => 'bool', 'description' => 'whether this group was created in this instance'], - 'location' => ['type' => 'varchar', 'length' => 191, 'description' => 'related physical location, if any'], - 'original_logo' => ['type' => 'varchar', 'length' => 191, 'description' => 'original size logo'], - 'homepage_logo' => ['type' => 'varchar', 'length' => 191, 'description' => 'homepage (actor) size logo'], - 'stream_logo' => ['type' => 'varchar', 'length' => 191, 'description' => 'stream-sized logo'], - 'mini_logo' => ['type' => 'varchar', 'length' => 191, 'description' => 'mini logo'], - 'uri' => ['type' => 'varchar', 'length' => 191, 'description' => 'universal identifier'], - 'mainpage' => ['type' => 'varchar', 'length' => 191, 'description' => 'page for group info to link to'], - 'join_policy' => ['type' => 'int', 'size' => 'tiny', 'description' => '0=open; 1=requires admin approval'], - 'force_scope' => ['type' => 'int', 'size' => 'tiny', 'description' => '0=never,1=sometimes,-1=always'], - 'created' => ['type' => 'datetime', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was created'], - 'modified' => ['type' => 'timestamp', 'not null' => true, 'default' => 'CURRENT_TIMESTAMP', 'description' => 'date this record was modified'], - ], - 'primary key' => ['id'], - 'unique keys' => [ - 'user_group_uri_key' => ['uri'], - 'user_actor_id_key' => ['actor_id'], - ], - 'indexes' => [ - 'user_group_nickname_idx' => ['nickname'], - 'user_group_actor_id_idx' => ['actor_id'], - ], - ]; - } -}