Skip to content
Snippets Groups Projects
UserModel.php 1.53 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * @copyright  2020 Podlibre
     * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
     * @link       https://castopod.org/
     */
    
    
    use Myth\Auth\Models\UserModel as MythAuthUserModel;
    
    class UserModel extends MythAuthUserModel
    
        /**
         * @return User[]
         */
        public function getPodcastContributors(int $podcastId): array
    
            $cacheName = "podcast#{$podcastId}_contributors";
    
            if (! ($found = cache($cacheName))) {
    
                $found = $this->select('users.*, auth_groups.name as podcast_role')
    
                    ->join('podcasts_users', 'podcasts_users.user_id = users.id')
    
                    ->join('auth_groups', 'auth_groups.id = podcasts_users.group_id')
    
                    ->where('podcasts_users.podcast_id', $podcastId)
    
                cache()
                    ->save($cacheName, $found, DECADE);
    
        public function getPodcastContributor(int $userId, int $podcastId): ?User
    
            return $this->select('users.*, podcasts_users.podcast_id as podcast_id, auth_groups.name as podcast_role')
    
                ->join('podcasts_users', 'podcasts_users.user_id = users.id')
                ->join('auth_groups', 'auth_groups.id = podcasts_users.group_id')
    
                    'users.id' => $userId,
                    'podcast_id' => $podcastId,