'Return information about a users\'s flair options.
If `link` is given, return link flair options.
Otherwise, return user flair options for this subreddit.
The logged in user\'s flair is also returned.
Subreddit moderators may give a user by `name` to instead
retrieve that user\'s flair.'

@csrf_exempt
@require_oauth2_scope('flair')
@validate(VUser(), user=VFlairAccount('name'), link=VFlairLink('link'))
@api_doc(api_section.flair, uses_site=True)
def POST_flairselector(self, user, link):

    if link:
        if (not (c.user_is_admin or link.can_flair_slow(c.user))):
            abort(403)
        site = link.subreddit_slow
        user = c.user
        return FlairSelector(user, site, link).render()
    else:
        if isinstance(c.site, FakeSubreddit):
            abort(403)
        else:
            site = c.site
        if user:
            if ((user != c.user) and (not c.user_is_admin) and (not site.is_moderator_with_perms(c.user, 'flair'))):
                abort(403)
        else:
            user = c.user
        if user._deleted:
            abort(403)
        return FlairSelector(user, site).render()
