Merge branch 'develop' of https://code.gab.com/gab/social/gab-social into develop

app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb
This commit is contained in:
robcolbert 2019-07-04 02:23:25 -04:00
commit 3c8627e25c
24 changed files with 519 additions and 98 deletions

@ -3,7 +3,7 @@
class AboutController < ApplicationController
layout 'public'
before_action :set_instance_presenter, only: [:show, :more, :terms, :privacy, :investors, :guidelines]
before_action :set_instance_presenter, only: [:show, :more, :terms, :privacy, :investors, :dmca, :sales]
def show
if user_signed_in?
@ -17,6 +17,8 @@ class AboutController < ApplicationController
def terms; end
def privacy; end
def investors; end
def dmca; end
def sales; end
private

@ -4,74 +4,52 @@ class Api::V1::Statuses::FavouritedByAccountsController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :read, :'read:accounts' }
before_action :set_status
after_action :insert_pagination_headers
respond_to :json
def index
# @accounts = load_accounts
# render json: @accounts, each_serializer: REST::AccountSerializer
render json: {}, status: :ok
end
private
def load_accounts
default_accounts.merge(paginated_favourites).to_a
#
end
def default_accounts
Account
.includes(:favourites, :account_stat)
.references(:favourites)
.where(favourites: { status_id: @status.id })
#
end
def paginated_favourites
Favourite.paginate_by_max_id(
limit_param(DEFAULT_ACCOUNTS_LIMIT),
params[:max_id],
params[:since_id]
)
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
#
end
def next_path
if records_continue?
api_v1_status_favourited_by_index_url pagination_params(max_id: pagination_max_id)
end
#
end
def prev_path
unless @accounts.empty?
api_v1_status_favourited_by_index_url pagination_params(since_id: pagination_since_id)
end
#
end
def pagination_max_id
@accounts.last.favourites.last.id
#
end
def pagination_since_id
@accounts.first.favourites.first.id
#
end
def records_continue?
@accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
#
end
def set_status
@status = Status.find(params[:status_id])
authorize @status, :show?
rescue GabSocial::NotPermittedError
# Reraise in order to get a 404 instead of a 403 error code
raise ActiveRecord::RecordNotFound
#
end
def pagination_params(core_params)
params.slice(:limit).permit(:limit).merge(core_params)
#
end
end

@ -16,12 +16,18 @@ class Settings::ProfilesController < Settings::BaseController
end
def update
if UpdateAccountService.new.call(@account, account_params)
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg')
# if verified and display_name is different, return flash error and redirect back
if @account.is_verified && @account.display_name != params[:account][:display_name]
flash[:alert] = 'Unable to change Display name for verified account'
redirect_to settings_profile_path
else
@account.build_fields
render :show
if UpdateAccountService.new.call(@account, account_params)
ActivityPub::UpdateDistributionWorker.perform_async(@account.id)
redirect_to settings_profile_path, notice: I18n.t('generic.changes_saved_msg')
else
@account.build_fields
render :show
end
end
end

@ -262,7 +262,7 @@ class StatusActionBar extends ImmutablePureComponent {
</div>
<div className='status__action-bar__counter'>
<IconButton className='status__action-bar-button star-icon' animate active={status.get('favourited')} pressed={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} />
{favoriteCount !== 0 && <Link to={`/${status.getIn(['account', 'acct'])}/posts/${status.get('id')}/favorites`} className='detailed-status__link'>{favoriteCount}</Link>}
{favoriteCount !== 0 && <span className='detailed-status__link'>{favoriteCount}</span>}
</div>
{shareButton}

@ -37,13 +37,11 @@ const messages = defineMessages({
showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show reposts from @{name}' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' },
unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
});
@ -118,7 +116,6 @@ class Header extends ImmutablePureComponent {
menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences' });
menu.push(null);
menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
menu.push(null);
menu.push({ text: intl.formatMessage(messages.mutes), to: '/mutes' });
menu.push({ text: intl.formatMessage(messages.blocks), to: '/blocks' });
@ -132,7 +129,6 @@ class Header extends ImmutablePureComponent {
}
menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
menu.push(null);
}

@ -10,7 +10,6 @@ import { meUsername } from 'gabsocial/initial_state';
const messages = defineMessages({
profile: { id: 'account.profile', defaultMessage: 'Profile' },
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
@ -44,7 +43,6 @@ class ActionBar extends React.PureComponent {
let menu = [];
menu.push({ text: intl.formatMessage(messages.profile), to: `/${meUsername}` });
menu.push({ text: intl.formatMessage(messages.lists), to: '/lists' });
menu.push(null);
menu.push({ text: intl.formatMessage(messages.follow_requests), to: '/follow_requests' });
menu.push({ text: intl.formatMessage(messages.mutes), to: '/mutes' });
@ -53,7 +51,7 @@ class ActionBar extends React.PureComponent {
menu.push({ text: intl.formatMessage(messages.filters), to: '/filters' });
menu.push(null);
menu.push({ text: intl.formatMessage(messages.keyboard_shortcuts), action: this.handleHotkeyClick });
menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences', newTab: true });
menu.push({ text: intl.formatMessage(messages.preferences), href: '/settings/preferences' });
menu.push({ text: intl.formatMessage(messages.logout), href: '/auth/sign_out', isLogout: true });
return (

@ -168,25 +168,14 @@ export default class DetailedStatus extends ImmutablePureComponent {
);
}
if (this.context.router) {
favouriteLink = (
<Link to={`/${status.getIn(['account', 'acct'])}/posts/${status.get('id')}/favorites`} className='detailed-status__link'>
<Icon id='star' />
<span className='detailed-status__favorites'>
<FormattedNumber value={status.get('favourites_count')} />
</span>
</Link>
);
} else {
favouriteLink = (
<a href={`/interact/${status.get('id')}?type=favourite`} className='detailed-status__link' onClick={this.handleModalLink}>
<Icon id='star' />
<span className='detailed-status__favorites'>
<FormattedNumber value={status.get('favourites_count')} />
</span>
</a>
);
}
favouriteLink = (
<span className='detailed-status__link'>
<Icon id='star' />
<span className='detailed-status__favorites'>
<FormattedNumber value={status.get('favourites_count')} />
</span>
</span>
);
return (
<div style={outerStyle}>

@ -19,13 +19,14 @@ const mapDispatchToProps = (dispatch) => ({
const LinkFooter = ({ onOpenHotkeys, account }) => (
<div className='getting-started__footer'>
<ul>
{(invitesEnabled && account) && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{(invitesEnabled && account) && <li><a href='/invites'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{account && <li><a href='#' onClick={onOpenHotkeys}><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></a> · </li>}
{account && <li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>}
<li><a href='/about'><FormattedMessage id='navigation_bar.info' defaultMessage='About' /></a> · </li>
<li><a href='/settings/applications' target='_blank'><FormattedMessage id='getting_started.developers' defaultMessage='Developers' /></a> · </li>
<li><a href='/about/guidelines'><FormattedMessage id='getting_started.guidelines' defaultMessage='Guidelines' /></a> · </li>
<li><a href='/settings/applications'><FormattedMessage id='getting_started.developers' defaultMessage='Developers' /></a> · </li>
<li><a href='/about/tos'><FormattedMessage id='getting_started.terms' defaultMessage='Terms of Service' /></a> · </li>
<li><a href='/about/dmca'><FormattedMessage id='getting_started.dmca' defaultMessage='DMCA' /></a> · </li>
<li><a href='/about/sales'><FormattedMessage id='getting_started.terms_of_sale' defaultMessage='Terms of Sale' /></a> · </li>
<li><a href='/about/privacy'><FormattedMessage id='getting_started.privacy' defaultMessage='Privacy Policy' /></a></li>
{account && <li> · <a href='/auth/sign_out' data-method='delete'><FormattedMessage id='navigation_bar.logout' defaultMessage='Logout' /></a></li>}
</ul>

@ -49,12 +49,10 @@ import {
FollowRequests,
GenericNotFound,
FavouritedStatuses,
ListTimeline,
Blocks,
DomainBlocks,
Mutes,
PinnedStatuses,
Lists,
Search,
Explore,
Groups,
@ -190,8 +188,8 @@ class SwitchingColumnsArea extends React.PureComponent {
<WrappedRoute path='/tags/:id' component={HashtagTimeline} content={children} />
<WrappedRoute path='/lists' layout={LAYOUT.DEFAULT} component={Lists} content={children} />
<WrappedRoute path='/list/:id' layout={LAYOUT.HOME} component={ListTimeline} content={children} />
<Redirect from='/lists' to='/home' />
<Redirect from='/list' to='/home' />
<WrappedRoute path='/notifications' layout={LAYOUT.DEFAULT} component={Notifications} content={children} />
@ -232,9 +230,6 @@ class SwitchingColumnsArea extends React.PureComponent {
<Redirect from='/@:username/posts/:statusId/reblogs' to='/:username/posts/:statusId/reblogs' />
<WrappedRoute path='/:username/posts/:statusId/reblogs' layout={LAYOUT.STATUS} component={Reblogs} content={children} />
<Redirect from='/@:username/posts/:statusId/favorites' to='/:username/posts/:statusId/favorites' />
<WrappedRoute path='/:username/posts/:statusId/favorites' layout={LAYOUT.STATUS} component={Favourites} content={children} />
<WrappedRoute layout={LAYOUT.EMPTY} component={GenericNotFound} content={children} />
</Switch>
);

@ -5,6 +5,6 @@ export const shortNumberFormat = number => {
if (number < 1000) {
return <FormattedNumber value={number} />;
} else {
return <Fragment><FormattedNumber value={number / 1000} maximumFractionDigits={1} />K</Fragment>;
return <span><FormattedNumber value={number / 1000} maximumFractionDigits={1} />K</span>;
}
};

@ -2571,7 +2571,8 @@ a.status-card.compact:hover {
}
.column-header__collapsible-inner {
background: #e6e6e6;
background: #3f3f3f;
body.theme-gabsocial-light & {background: #e6e6e6;}
padding: 15px;
}

@ -108,7 +108,7 @@
padding: 16px 22px;
text-align: center;
@media screen and (max-width:1190px) {padding: 16px;}
span {
> span {
display: block;
&:first-of-type {
color: $primary-text-color;

@ -14,6 +14,10 @@
display: block;
height: 112px;
width: 100%;
background: lighten($gab-background-container, 4%);
body.theme-gabsocial-light & {
background: darken($gab-background-container-light, 4%);
}
img {
display: block;
@ -36,7 +40,7 @@
height: 82px;
border: 6px solid $gab-background-base;
body.theme-gabsocial-light & {border: 6px solid $gab-background-base-light;}
background-size: 82px 82px;
background-size: cover;
}
}

@ -180,7 +180,7 @@ p {
p {
font-size: 15px;
line-height: 23px;
color: $ui-primary-color;
color: #fff;
mso-line-height-rule: exactly;
text-rendering: optimizelegibility;
}
@ -514,7 +514,7 @@ ul {
color: lighten($ui-base-color, 26%);
span {
color: $ui-primary-color;
color: #fff;
}
}
}

@ -0,0 +1,56 @@
- content_for :page_title do
= t('terms.title', instance: site_hostname)
.content
.box-widget
.rich-formatting
%h1 GAB AI INC
%h2 COPYRIGHT POLICY
%h3 Reporting Claims of Copyright Infringement
%p We take claims of copyright infringement seriously. We will respond to notices of alleged copyright infringement that comply with applicable law. If you believe any materials accessible on or from this site (the “Website”) infringe your copyright, you may request removal of those materials (or access to them) from the Website by submitting written notification to our copyright agent designated below. In accordance with the Online Copyright Infringement Liability Limitation Act of the Digital Millennium Copyright Act (17 U.S.C. § 512) (”DMCA”), the written notice (the “DMCA Notice”) must include substantially the following:
%ul
%li Your physical or electronic signature.
%li Identification of the copyrighted work you believe to have been infringed or, if the claim involves multiple works on the Website, a representative list of such works.
%li Identification of the material you believe to be infringing in a sufficiently precise manner to allow us to locate that material.
%li Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
%li A statement that you have a good faith belief that use of the copyrighted material is not authorized by the copyright owner, its agent, or the law.
%li A statement that the information in the written notice is accurate.
%li A statement, under penalty of perjury, that you are authorized to act on behalf of the copyright owner.
%p Please send copyright notices to
%p
Gab AI Inc
%br
700 N State Street
%br
Clarks Summit, PA 18411
%p Or via any contact form at the bottom of this page.
%p If you fail to comply with all of the requirements of Section 512(c)(3) of the DMCA, your DMCA Notice may not be effective.
%p Please be aware that if you knowingly materially misrepresent that material or activity on the Website is infringing your copyright, you may be held liable for damages (including costs and attorneys fees) under Section 512(f) of the DMCA.
%h3 Counter Notification Procedures
%p If you believe that material you posted on the Website was removed or access to it was disabled by mistake or misidentification, you may file a counter notification with us (a “Counter Notice”) by submitting written notification to our DMCA address (above) Pursuant to the DMCA, the Counter Notice must include substantially the following:
%ul
%li Your physical or electronic signature.
%li An identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or access disabled.
%li Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
%li A statement under penalty of perjury by you that you have a good faith belief that the material identified above was removed or disabled as a result of a mistake or misidentification of the material to be removed or disabled.
%li A statement that you will consent to the jurisdiction of the Federal District Court for the judicial district in which your address is located (or if you reside outside the United States for any judicial district in which the Website may be found) and that you will accept service from the person (or an agent of that person) who provided the Website with the complaint at issue.
%p The DMCA allows us to restore the removed content if the party filing the original DMCA Notice does not file a court action against you within ten business days of receiving the copy of your Counter Notice.
%p Please be aware that if you knowingly materially misrepresent that material or activity on the Website was removed or disabled by mistake or misidentification, you may be held liable for damages (including costs and attorneys fees) under Section 512(f) of the DMCA.
%h3 Repeat Infringers
%p It is our policy in appropriate circumstances to disable and/or terminate the accounts of users who are repeat infringers.
%hr
= mail_to 'support@gab.com'

@ -1,6 +0,0 @@
- content_for :page_title do
= t('terms.title', instance: site_hostname)
.content
.box-widget
.rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')

@ -3,4 +3,11 @@
.content
.box-widget
.rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
.rich-formatting
%h2 Investors
%p
= link_to 'Invest in Gab', 'https://invest.gab.com'
%p
= link_to '2018 Annual Report', 'https://www.sec.gov/Archives/edgar/data/1709244/000114420419021378/tv519744_annualreport.pdf'
%p
= link_to '2017 Annual Report', 'https://www.sec.gov/Archives/edgar/data/1709244/000170924418000001/GAB_-_Annual_Report_-_2018.pdf'

@ -18,3 +18,4 @@
%p Gab Social is a fresh take on one of the Internet's most popular applications: social networking. Originally forked from the Mastodon project, Gab's codebase is free and open-source, licensed under the GNU Affero General Public License version 3 (AGPL3).
%p As a result, you, the user, have a choice when using Gab Social: you can either have an account on Gab.com, or, if you don't like what we're doing on Gab.com or simply want to manage your own experience, you can spin up your own Gab Social server that you control, that allows you to communicate with millions of users on their own federated servers from around the world, including users on Gab.
%p Gab.com strives to be the home of free speech online. We work on Gab Social 100% of the time as our full-time jobs. We positively encourage you to either join us on Gab.com or to spin up your own Gab Social server that you control to help take back control of the Web for the People.
= link_to "https://code.gab.com/gab/social/gab-social", "https://code.gab.com/gab/social/gab-social"

@ -3,4 +3,127 @@
.content
.box-widget
.rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
.rich-formatting
%h1 GAB AI INC
%h2 PRIVACY POLICY
%h3 DATE: 24 JUNE 2019
%p GAB AI INC (”Company” or “We”) respect your privacy and are committed to protecting it through our compliance with this policy.
%p
This policy describes the types of information we may collect from you or that you may provide when you visit the website
= link_to 'GAB.COM', 'https://gab.com'
,
= link_to 'DISSENTER.COM', 'https://dissenter.com'
and any other online properties of Gab AI Inc (each a “Website”) and our practices for collecting, using, maintaining, protecting, and disclosing that information.
%p This policy applies to information we collect:
%p On the Website.
%p In email, text, and other electronic messages between you and this Website.
%p Through mobile and desktop applications you download from this Website, which provide dedicated non-browser-based interaction between you and this Website.
%p When you interact with our advertising and applications on third-party websites and services, if those applications or advertising include links to this policy.
%p It does not apply to information collected by:
%ul
%li Us offline or through any other means, including on any other website operated by Company or any third party (including our affiliates and subsidiaries); or
%li Any third party (including our affiliates and subsidiaries), including through any application or content (including advertising) that may link to or be accessible from from the Website.
%li Please read this policy carefully to understand our policies and practices regarding your information and how we will treat it. If you do not agree with our policies and practices, your choice is not to use our Website. By accessing or using this Website, you agree to this privacy policy. This policy may change from time to time (see Changes to our Privacy Policy, below). Your continued use of this Website after we make changes is deemed to be acceptance of those changes, so please check the policy periodically for updates.
%h3 Children Under the Age of 18
%p Our Website is not intended for children under 18 years of age. No one under age 18 may provide any information to or on the Website. We do not knowingly collect personal information from children under 18. If you are under 18, do not use or provide any information on this Website, register on the Website, make any purchases through the Website, use any of the interactive or public comment features of this Website, or provide any information about yourself to us, including your name, address, telephone number, email address, or any screen name or user name you may use. If we learn we have collected or received personal information from a child under 18 without verification of parental consent, we will delete that information and any associated accounts. If you believe we might have any information from or about a child under 18, please contact us at support [at] gab [dot] com.
%p California residents under 16 years of age may have additional rights regarding the collection and sale of their personal information. Please see Your California Privacy Rights (below) for more information.
%h3 Information We Collect About You and How We Collect It
%p We collect several types of information from and about users of our Website, including information:
%ul
%li By which you may be personally identified, such as an e-mail address (”personal information”);
%li That is about you but individually does not identify you, such as the content of your user profile; and/or
%li About your internet connection, the equipment you use to access our Website, and usage details.
%ul
%li We collect this information:
%li Directly from you when you provide it to us.
%li Automatically as you navigate through the site. Information collected automatically may include usage details and IP addresses.
%li From third parties, for example, our business partners.
%h3 Information You Provide to Us
%p The information we collect on or through our Website may include:
%p Information that you provide by filling in forms on our Website. This includes information provided at the time of registering to use our Website, subscribing to our service, posting material, or requesting further services. We may also ask you for information when you report a problem with our Website.
%p Records and copies of your correspondence (including email addresses), if you contact us.
%p Details of transactions you carry out through our Website and of the fulfillment of your orders. You may be required to provide financial information before placing an order through our Website.
%p You also may provide information to be published or displayed (hereinafter, “posted”) on public areas of the Website, or transmitted to other users of the Website or third parties (collectively, “User Contributions”). The overwhelming majority of User Contributions are public and may be seen by any person who navigates to them. Your User Contributions are posted on and transmitted to others at your own risk. Although you may set certain privacy settings for such information by logging into your account profile, please be aware that no security measures are perfect or impenetrable. Additionally, we cannot control the actions of other users of the Website with whom you may choose to share your User Contributions. Therefore, we cannot and do not guarantee that your User Contributions will not be viewed by unauthorized persons.
%h3 Information We Collect Through Automatic Data Collection
%p As you navigate through and interact with our Website, we may use automatic data collection technologies to collect certain information about your equipment, browsing actions, and patterns, including:
%ul
%li Details of your visits to our Website, including traffic data, logs, and other communication data and the resources that you access and use on the Website.
%li Information about your computer and internet connection, including your IP address, operating system, and browser type.
%p The information we collect automatically may be only statistical data and may not include personal information. It helps us to improve our Website and to deliver a better and more personalized service, including by enabling us to:
%ul
%li Estimate our audience size and usage patterns.
%li Store information about your preferences, allowing us to customize our Website according to your individual interests.
%li Speed up your searches.
%li Recognize you when you return to our Website.
%p The technologies we use for this automatic data collection may include:
%ul
%li Cookies (or browser cookies). A cookie is a small file placed on the hard drive of your computer. You may refuse to accept browser cookies by activating the appropriate setting on your browser. However, if you select this setting you may be unable to access certain parts of our Website. Unless you have adjusted your browser setting so that it will refuse cookies, our system will issue cookies when you direct your browser to our Website.
%li We do not collect personal information automatically, but we may tie this information to personal information about you that we collect from other sources or you provide to us.
%h3 How We Use Your Information
%p We use information that we collect about you or that you provide to us, including any personal information:
%ul
%li To present our Website and its contents to you.
%li To provide you with information about our products or services.
%li To fulfill any other purpose for which you provide it.
%li To provide you with notices about your account, including expiration and renewal notices.
%li To carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection.
%li To notify you about changes to our Website or any products or services we offer or provide though it.
%li To allow you to participate in interactive features on our Website.
%li In any other way we may describe when you provide the information.
%li For any other purpose with your consent.
%p We may also use your information to contact you about our own and third-parties goods and services that may be of interest to you.
%h3 Disclosure of Your Information
%p We may disclose aggregated information about our users, and information that does not identify any individual, without restriction.
%p It is the policy of the Company to not provide any user data to any person unless compelled by a court order issued by a U.S. court, except in cases of life-threatening emergency. The Company reserves the right to change or deviate from this policy at any time, in its sole and absolute discretion, with or without notice to you.
%p We may disclose personal information that we collect or you provide as described in this privacy policy:
%ul
%li To our subsidiaries and affiliates.
%li To contractors, service providers, and other third parties we use to support our business and who are bound by contractual obligations to keep personal information confidential and use it only for the purposes for which we disclose it to them.
%li To a buyer or other successor in the event of a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Gab AI Incs assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which personal information held by Gab AI Inc about our Website users is among the assets transferred.
%li To fulfill the purpose for which you provide it.
%li For any other purpose disclosed by us when you provide the information.
%li With your consent.
%li We may also disclose your personal information:
%li To comply with any court order, law, or legal process, including to respond to any government or regulatory request.
%li To enforce or apply our terms of use and sale and other agreements, including for billing and collection purposes.
%li If we believe disclosure is necessary or appropriate to protect the rights, property, or safety of Gab AI Inc, our employees, our customers, or any other person.
%h3 Accessing, Correcting and Deleting Your Information
%p You can review and change your personal information by logging into the Website and visiting your account profile page.
%p You may also send us an email at support [at] gab [dot] com to request access to, correct or delete any personal information that you have provided to us. We cannot delete your personal information except by also deleting your user account. We may not accommodate a request to change information if we believe the change would violate any law or legal requirement or cause the information to be incorrect.
%p If you delete your User Contributions from the Website, copies of your User Contributions may remain viewable in cached and archived pages, or might have been copied or stored by other Website users. Proper access and use of information provided on the Website, including User Contributions, is governed by our Terms of Use.
%h3 Data Security
%p We have implemented measures designed to secure your personal information from accidental loss and from unauthorized access, use, alteration, and disclosure. All information you provide to us is stored on our secure servers behind firewalls. Any payment transactions will be encrypted using SSL.
%p The safety and security of your information also depends on you. Most information on the Website is public. Where we have given you (or where you have chosen) a password for access to certain parts of our Website, you are responsible for keeping this password confidential. We ask you not to share your password with anyone. We urge you to be careful about giving out information in public areas of the Website like message boards. The information you share in public areas may be viewed by any user of the Website, whether that user is registered on the site or not.
%p Unfortunately, the transmission of information via the internet is not completely secure. Although we do our best to protect your personal information, we cannot guarantee the security of your personal information transmitted to our Website. Any transmission of personal information is at your own risk. We are not responsible for circumvention of any privacy settings or security measures contained on the Website.
%h3 Changes to Our Privacy Policy
%p It is our policy to post any changes we make to our privacy policy on this page with a notice that the privacy policy has been updated on the Website home page. If we make material changes to how we treat our users personal information, we will notify you through a notice on the Website home page. The date the privacy policy was last revised is identified at the top of the page. You are responsible for ensuring we have an up-to-date active and deliverable email address for you, and for periodically visiting our Website and this privacy policy to check for any changes.
%h3 Contact Information
%p To ask questions or comment about this privacy policy and our privacy practices, contact us at
%p
Gab AI Inc
%br
700 N State Street
%br
Clarks Summit, PA 18411
%p Or by any contact form at the bottom of this page.
%hr
= mail_to 'support@gab.com'

@ -0,0 +1,70 @@
- content_for :page_title do
= t('terms.title', instance: site_hostname)
.content
.box-widget
.rich-formatting
%h2 Terms of Sale
%p Gab AI Inc (“We” or “Gab”) hereby allow you to access certain premium features or content in exchange for a one-time or recurring fee, as applicable to the relevant features or content, such as our “GabPro” enhanced social media offering (collectively, each a “Paid Service” and collectively the "Paid Services"). Your transactions and any other use of the Paid Services are subject to these Gab Paid Service Terms of Service ("Terms”).
%h3 1. Your Acceptance
%p By using a Paid Service, you signify your agreement to (1) these Terms of Sale; and (2) Gab AI Incs Terms of Service, Privacy Notice, and Copyright Notice, and all other terms and conditions that generally apply to the Website (as such term is defined in the Terms of Service).  Please read the Terms carefully. If you do not understand the Terms, or do not accept any part of them, then you may not use the Paid Services.
%p Each time you place an order for a Paid Service (including when you order individual subscriptions or items of content), you enter into a separate contract for services on these Terms. When you complete a purchase, you signify that you wish to enter into a binding contract for the provision of the applicable Paid Services.
%h3 2. Payment, Refund and Cancellation Policy
%p Gab accepts payment via the current payment method indicated prior to purchase, which may include Bitcoin and/or any other form of payment that we make available to you from time to time. You must tender valid payment or have a valid accepted form of payment on file in order to purchase Paid Services or participate in free trial offers or other free offers related to the Paid Services. You agree to abide by any relevant Terms of Service or other legal agreement, whether with Gab or a third party, that governs your use of a given payment processing method. Prices for any Paid Service may change at any time, and Gab does not provide price protection or refunds in the event of a price reduction or promotional offering. You agree to pay for any Paid Service that you order. Gab will charge your credit card or other form of payment for the price listed on the relevant Paid Service offer, along with any additional amounts relating to applicable taxes, bank fees and currency fluctuations. If you purchase any automatically renewing subscriptions, you agree that Gab will charge the payment method on file on the first day of each billing period for the relevant subscription, and if the payment method on file becomes invalid due to an expired credit card or other similar reason and we are unable to charge you on the next billing period, Gab reserves the right to immediately revoke your access to any Paid Service you have ordered until you update your payment method. If you fail to update your payment method within a reasonable amount of time, Gab may cancel your subscription.
%p If Gab is required to collect or pay any taxes in connection with your purchase of a Paid Service, such taxes will be charged to you at the time of each purchase transaction. Additionally, if required by law, you are responsible for reporting and paying certain taxes in connection with your purchase and use of a Paid Service. Such taxes may include duties, customs fees, or other taxes (other than income tax), along with any related penalties or interest, as applicable to your purchase or country of purchase.
%p
%b REFUNDS:
all purchases are final.
%p
%b SUBSCRIPTION CANCELLATIONS:
you purchase a subscription to a Paid Service that automatically renews, you may cancel the subscription any time before the end of the current billing period and the cancellation will take effect on the next billing period. You will retain access to the Paid Service from the time you cancel until the start of the next billing period, and will not receive a refund or credit for any remaining days in your current billing period.
%p
%b FREE TRIALS:
Gab may offer free trials to new Paid Service subscribers. If you purchase a subscription to a Paid Service that includes a free trial, you will receive free access to such Paid Service for the duration of the free trial period. At the end of the applicable free trial period, you will be charged the price of the subscription and will continue to be charged until you cancel your subscription. To avoid any charges, you must cancel before the end of the free trial period.
%h3 3. Accessing Paid Services.
%p Certain types of Paid Services may require you to use a device that meets the system and compatibility requirements for such Paid Service, which may change from time to time. You shall have sole responsibility for obtaining a device which satisfies those requirements.
%h3 4. License
%p Your use of the Paid Services must be only for personal, non-commercial use. You agree not to use any Paid Service, in whole or in part in connection with any public presentation even if no fee is charged (except where such use would not constitute a copyright infringement). You are receiving a non-exclusive license to access the Paid Service and all rights, title and interest in the Paid Services (including any content offered through the Paid Services) not expressly granted to you in these Terms are reserved by Gab and its licensors. If Gab reasonably determines that you violated any of the terms and conditions of the Paid Service Terms, your rights under this Section 4 will immediately terminate and Gab may terminate your access to the Paid Service and/or your Gab account without notice and without refund to you.
%h3 5. Restrictions
%p When you use the Paid Service, you may not (or attempt to):
%ul
%li violate the Terms of Service;
%li use the Paid Service in an illegal manner or for an illegal purpose;
%li share your account password with someone else to allow them to access any Paid Service that such person did not order;
%li copy, sell, rent, or sublicense the Paid Services to any third party;
%li circumvent, reverse-engineer, modify, disable, or otherwise tamper with any security technology that Gab uses to protect the Paid Service or encourage or help anyone else to do so;
%li access the Paid Service other than by means authorized by Gab; or
%li remove any proprietary notices or labels on Paid Services.
%h3 6. Changes
%p Gab reserves the right to change the availability and content of the Paid Services at any time with or without notice to you. In addition, we reserve the right to modify, suspend, or discontinue any Paid Service with or without notice to you and we will not be liable to you or any third party for any such modifications, suspension, or termination. However, this will not affect your ability to request a refund as described above.
%p
In certain cases, content available within a Paid Service may become unavailable. Gab will have no liability to you for any such unavailability. We may also change these Paid Service Terms from time to time so we encourage you to periodically review the most up-to-date version at
= link_to 'https://gab.com/about/sales'
%p If the Paid Service Terms change, you will have the opportunity to review the new terms when you next purchase any Paid Service. By completing the purchase, you signify your agreement to the new Paid Service Terms, and further, that they will apply to your use of the Service as a whole (including any Paid Service you have purchased in the past) and all subsequent purchases (until the Paid Service Terms change again). If you refuse to accept the updated Paid Service Terms then you may not buy any additional Paid Services and the latest version of the Paid Service Terms that you accepted will continue to apply to your use of previously purchased Paid Services.
%h3 7. Communications
%p By using the Paid Services, you consent to receiving communications from us including marketing communications such as newsletters about Gab features and content, special offers, promotional announcements, and customer surveys, to your registered email address or via other methods.
%h3 9. Other Terms
%p You acknowledge and agree that certain content available in the Paid Services may be considered offensive to some people and that such content may not be labeled as such. Additionally, certain descriptions of Paid Services or content available in the Paid Services are not guaranteed to be accurate. You agree to use the Paid Services at your own risk and, subject to applicable laws, Gab will have no liability to you for any content that you find offensive .
%p The Paid Services are being provided by Gab AI Inc, reachable at:
%p
Gab AI Inc
%br
700 N State Street
%br
Clarks Summit, PA 18411
%br
United States of America

@ -3,4 +3,195 @@
.content
.box-widget
.rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
.rich-formatting
%h1 GAB AI INC
%h2 Website Terms of Use
%h3 Last Modified: 24 June 2019
%h3 Acceptance of the Terms of Use
 
%p These terms of use are entered into by and between You and GAB AI INC (”Company,” “we,” or “us”). The following terms and conditions, together with the Copyright Policy, the Privacy Policy and any other documents expressly incorporated by reference (collectively, “Terms of Use”), govern your access to and use of GAB.COM and DISSENTER.COM and other web properties of Gab AI Inc, including any content, functionality, and services offered on or through GAB.COM and DISSENTER.COM (the “Website”), whether as a guest or a registered user.
%p Please read the Terms of Use carefully before you start to use the Website. By using the Website, you accept and agree to be bound and abide by these Terms of Use and our Privacy Policy, incorporated herein by reference. If you do not want to agree to these Terms of Use or the Privacy Policy, you must not access or use the Website.
%p This Website is offered and available to users who are 18 years of age or older. By using this Website, you represent and warrant that you are of legal age to form a binding contract with the Company and meet all of the foregoing eligibility requirements. If you do not meet all of these requirements, you must not access or use the Website.
%p Please be aware of the Terms of Sale, Privacy Policy, and Copyright Policy which are incorporated into these Terms of Use by reference.
%h3 Changes to the Terms of Use 
%p We may revise and update these Terms of Use from time to time in our sole discretion. All changes are effective immediately when we post them, and apply to all access to and use of the Website thereafter. Your continued use of the Website following the posting of revised Terms of Use means that you accept and agree to the changes. You are expected to check this page frequently so you are aware of any changes, as they are binding on you.
%h3 Accessing the Website and Account Security
%p We reserve the right to withdraw or amend this Website, and any service or material we provide on the Website, in our sole discretion without notice. We will not be liable if for any reason all or any part of the Website is unavailable at any time or for any period. From time to time, we may restrict access to some parts of the Website, or the entire Website, to users, including registered users.
%p You are responsible for both:
%ul
%li Making all arrangements necessary for you to have access to the Website.
%li Ensuring that all persons who access the Website through your internet connection are aware of these Terms of Use and comply with them.
%p To access the Website or some of the resources it offers, you may be asked to provide certain registration details or other information. It is a condition of your use of the Website that all the information you provide on the Website is correct, current, and complete. You agree that all information you provide to register with this Website or otherwise, including, but not limited to, through the use of any interactive features on the Website, is governed by our Privacy Policy, and you consent to all actions we take with respect to your information consistent with our Privacy Policy.
%p If you choose, or are provided with, a user name, password, or any other piece of information as part of our security procedures, you must treat such information as confidential, and you must not disclose it to any other person or entity. You also acknowledge that your account is personal to you and agree not to provide any other person with access to this Website or portions of it using your user name, password, or other security information. You agree to notify us immediately of any unauthorized access to or use of your user name or password or any other breach of security. You should use particular caution when accessing your account from a public or shared computer so that others are not able to view or record your password or other personal information.
%p We have the right to disable any user name, password, or other identifier, whether chosen by you or provided by us, at any time if we believe you have violated any provision of these Terms of Use.
%h3 Intellectual Property Rights
%p The Website and its entire contents, features, and functionality (including but not limited to all information, software, text, displays, images, video, and audio, and the design, selection, and arrangement thereof) are owned by the Company, its licensors, or other providers of such material and are protected by United States and international copyright, trademark, patent, trade secret, and other intellectual property or proprietary rights laws. A copy of the Gab Social social networking software (“Gab Social”) and the AGPL license applicable thereto may be found at our public repository.
%p These Terms of Use permit you to use the Website for your personal, non-commercial use only. You must not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, download, store, or transmit any of the material on our Website, except as follows:
%ul
%li You may use Gab Social software subject to the terms of the Affero GPL License, Version 3.
%li Your computer may temporarily store copies of displayed content on the website incidental to your accessing and viewing those materials.
%li You may store files that are automatically cached by your Web browser for display enhancement purposes.
%li You may print or download one copy of a reasonable number of pages of the Website for your own personal, non-commercial use and not for further reproduction, publication, or distribution.
%li If we provide desktop, mobile, or other applications for download, you may download one copy to each of your computers or mobile devices solely for your own personal use, provided you agree to be bound by our end user license agreement for such applications.
%li Where we provide social media features with certain content on Gab.com and Dissenter.com, you may take such actions as are enabled by such features.
%p You must not:
%ul
%li Modify copies of any materials from this site.
%li Delete or alter any copyright, trademark, or other proprietary rights notices from copies of materials from this site.
%p If you wish to make any use of material on the Website other than that set out in this section, please address your request to: legal [at] gab [dot] com.
%p If you print, copy, modify, download, or otherwise use or provide any other person with access to any part of the Website in breach of the Terms of Use, your right to use the Website will stop immediately and you must, at our option, return or destroy any copies of the materials you have made. No right, title, or interest in or to the Website or any content on the Website is transferred to you, and all rights not expressly granted are reserved by the Company. Any use of the Website not expressly permitted by these Terms of Use is a breach of these Terms of Use and may violate copyright, trademark, and other laws.
%h3 Trademarks
%p The Company name, the terms “GAB”, “GAB.COM,” “DISSENTER,” “COMMENT SECTION OF THE INTERNET,” the GAB and GAB.COM logos, and all related names, logos, product and service names, designs, and slogans are trademarks of the Company or its affiliates or licensors. You must not use such marks without the prior written permission of the Company. All other names, logos, product and service names, designs, and slogans on this Website are the trademarks of their respective owners.
%h3 Prohibited Uses
%p You may use the Website only for lawful purposes and in accordance with these Terms of Use. You agree not to use the Website:
%ul
%li In any way that would violate any applicable federal, state, or local law of the United States of America (including, without limitation, any laws regarding the export of data or software to and from the US or other countries) and is not protected by the First Amendment to the U.S. Constitution (the “First Amendment”).
%li For the purpose of exploiting, harming, or attempting to exploit or harm minors in any way by exposing them to inappropriate content, asking for personally identifiable information, or otherwise.
%li To send, knowingly receive, upload, download, use, or re-use any material that does not comply with the Content Standards set out in these Terms of Use.
%li To transmit, or procure the sending of, any unwanted advertising or promotional material, including any “junk mail,” “chain letter,” “spam,” tagging random users in posts on your timeline, follower spam, or any other similar solicitation. For avoidance of doubt, this is not thought to encompass reasonable commercial use of a Gab feed by a commercial entity or individual to advertise your own commercial products.
%li To impersonate or attempt to impersonate the Company or a Company employee, or to impersonate another user or any other person or entity for a purpose that is not protected by the First Amendment.
%li To engage in any other conduct which, as determined by us, may result in the physical harm or offline harassment of the Company, individual users of the Website or any other person (e.g. “doxing”), or expose them to liability.
%p Additionally, you agree not to:
%ul
%li Use the Website in any manner that could disable, overburden, damage, or impair the site or interfere with any other partys use of the Website, including their ability to engage in real time activities through the Website.
%li Use any robot, spider, or other automatic device, process, or means to access the Website for any purpose, including monitoring or copying any of the material on the Website.
%li Use any manual process to monitor or copy any of the material on the Website, or for any other purpose not expressly authorized in these Terms of Use, without our prior written consent.
%li Use any device, software, or routine that interferes with the proper working of the Website.
%li Introduce any viruses, Trojan horses, worms, logic bombs, or other material that is malicious or technologically harmful.
%li Attempt to gain unauthorized access to, interfere with, damage, or disrupt any parts of the Website, the server on which the Website is stored, or any server, computer, or database connected to the Website.
%li Attack the Website via a denial-of-service attack or a distributed denial-of-service attack.
%li Otherwise attempt to interfere with the proper working of the Website.
%h3 User Contributions
%p The Website may contain message boards, chat rooms, personal web pages or profiles, forums, bulletin boards, group pages, discussion threads, and other interactive features (collectively, “Interactive Services”) that allow users to post, submit, publish, display, or transmit to other users or other persons (hereinafter, “post”) content or materials (collectively, “User Contributions”) on or through the Website.
%p All User Contributions must comply with the Content Standards set out in these Terms of Use. Any User Contribution you post to the site will be considered non-confidential and non-proprietary. By providing any User Contribution on the Website, you grant us and our affiliates and service providers, and each of their and our licensees, successors, and assigns the right to use, reproduce, modify, perform, display, distribute, and otherwise disclose to third parties any such material for any purpose.
%p You represent and warrant that:
%ul
%li You own or control all rights in and to the User Contributions and have the right to grant the license granted above to us and our affiliates and service providers, and each of their and our respective licensees, successors, and assigns.
%li All of your User Contributions do and will comply with these Terms of Use.
%p You understand and acknowledge that you are responsible for any User Contributions you submit or contribute, and you, not the Company, have full responsibility for such content, including its legality, reliability, accuracy, and appropriateness.
%p We are not responsible or liable to any third party for the content or accuracy of any User Contributions posted by you or any other user of the Website.
%h3 Monitoring and Enforcement; Termination
%p We strive to ensure that the First Amendment remains the Websites standard for content moderation. We will make best efforts to ensure that all content moderation decisions and enforcement of these terms of service does not punish users for exercising their God-given right to speak freely.
%p We collect comparatively little data on our users relative to other social networking sites. Our default position is that we should implement no prior restraints on any User Contribution. However, given the breadth of speech we permit, there may be circumstances where we are unable to determine whether content is protected by the First Amendment or not and prudence may require us to err on the side of caution. Accordingly, the Company reserves the right to take any action with respect to any User Contribution that we deem necessary or appropriate in our sole discretion, including the following:
%ul
%li Take any action with respect to any User Contribution that we deem necessary or appropriate in our sole discretion, including if we believe that such User Contribution violates the Terms of Use, including the Content Standards, infringes any intellectual property right or other right of any person or entity, or could threaten the physical safety of users of the Website or the public.
%li Take appropriate legal action, including without limitation referral to law enforcement, for any illegal or unauthorized use of the Website or in cases of life-threatening emergency.
%li Terminate or suspend your access to all or part of the Website for any violation of these Terms of Use.
%p If your access to the Website is terminated or suspended in relation to a User Contribution authored by you that you believe constitutes protected political or religious speech, and you are able to demonstrate that the User Contribution in question was protected by the First Amendment by obtaining a declaratory judgment from a court of competent jurisdiction, the company will consider permitting you to re-join the site.
%p It is the policy of the Company to not provide any user data to any person unless compelled by a court order issued by a U.S. court, except in cases of life-threatening emergency. The Company reserves the right to change or deviate from this policy at any time, in its sole and absolute discretion, with or without notice to you. Without limiting the foregoing, we have the right to cooperate fully with any law enforcement authorities or civil and criminal court orders requesting or directing us to disclose the identity or other information of anyone posting any materials on or through the Website. YOU WAIVE AND HOLD HARMLESS THE COMPANY AND ITS AFFILIATES, LICENSEES, AND SERVICE PROVIDERS FROM ANY CLAIMS RESULTING FROM ANY ACTION TAKEN BY ANY OF THE FOREGOING PARTIES DURING, OR TAKEN AS A CONSEQUENCE OF, INVESTIGATIONS BY EITHER SUCH PARTIES OR LAW ENFORCEMENT AUTHORITIES.
%p We do not review material before it is posted on the Website and cannot ensure prompt removal of unlawful material after it has been posted. Accordingly, we assume no liability for any action or inaction regarding transmissions, communications, or content provided by any user or third party. We have no liability or responsibility to anyone for performance or nonperformance of the activities described in this section.
%h3 Content Standards
%p These Content Standards apply to any and all User Contributions and use of Interactive Services.
%p As a general rule, written expression that is protected political, religious, symbolic, or commercial speech under the First Amendment of the U.S. Constitution will be allowed on the Website. User Contributions absolutely must in their entirety comply with all applicable federal, state, and local regulations in the United States.
%p Without limiting the generality of the foregoing, User Contributions must NOT:
%ul
%li Be unlawful or be made in furtherance of any unlawful purpose. User Contributions must not aid, abet, assist, counsel, procure or solicit the commission of, nor constitute an attempt or part of a conspiracy to commit, any unlawful act. For avoidance of doubt, speech which is merely offensive or the expression of an offensive or controversial idea or opinion, as a general rule, will be in poor taste but will not be illegal in the United States.
%li Unlawfully threaten.
%li Incite imminent lawless action.
%li Interfere with the operation of any computer.
%li Be obscene, sexually explicit or pornographic. Note that mere nudity e.g. as a form of protest or for educational/medical reasons will not fall foul of this rule.
%li Infringe any patent, trademark, trade secret, copyright, or other intellectual property or other rights of any other person.
%li Violate the legal rights (including the rights of publicity and privacy) of others or contain any material that could give rise to any civil or criminal liability under applicable laws or regulations of the United States or that otherwise may be in conflict with these Terms of Use and our Privacy Policy.
%li Impersonate any person, or misrepresent your identity or affiliation with any person or organization, for a purpose not protected by the First Amendment.
%li Involve commercial activities relating to finance, investments or gambling, such as contests and sweepstakes, penny stock promotion, money transmission, or Initial Coin Offerings; or the trade of live or endangered animals or animal parts, or anything that portrays or encourages the abuse of animals.
%li Give the impression that they emanate from or are endorsed by us or any other person or entity, if this is not the case.
%li Link to any content from the above-listed categories.
%p Although our Content Standards, following the First Amendment, do not proscribe offensive speech, we strongly encourage you to ensure that your User Contributions are cordial and civil. The foundation of a free society requires people to peacefully settle their differences through dialogue and debate. Gab exists to promote the free flow of information online. It is our view that the responsible exercise of ones free speech rights is its own reward and, as a general rule, the most well-respected online publishers tend to be the ones who behave the most civilly and put forward their arguments most intelligently.
%h3 Copyright Infringement
%p If you believe that any User Contributions violate your copyright, please see our Copyright Policy for instructions on sending us a notice of copyright infringement. It is the policy of the Company to terminate the user accounts of repeat infringers.
%h3 Reliance on Information Posted
%p The information presented on or through the Website is made available solely for general information purposes. We do not warrant the accuracy, completeness, or usefulness of this information. Any reliance you place on such information is strictly at your own risk. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to the Website, or by anyone who may be informed of any of its contents.
%p This Website may include content provided by third parties, including materials provided by other users, bloggers, and third-party licensors, syndicators, aggregators, and/or reporting services. All statements and/or opinions expressed in these materials, and all articles and responses to questions and other content, other than the content provided by the Company, are solely the opinions and the responsibility of the person or entity providing those materials. These materials do not necessarily reflect the opinion of the Company. We are not responsible, or liable to you or any third party, for the content or accuracy of any materials provided by any third parties.
%h3 Changes to the Website
%p We may update the content on this Website from time to time, but its content is not necessarily complete or up-to-date. Any of the material on the Website may be out of date at any given time, and we are under no obligation to update such material.
%h3 Information About You and Your Visits to the Website
%p All information we collect on this Website is subject to our Privacy Policy. By using the Website, you consent to all actions taken by us with respect to your information in compliance with the Privacy Policy.
%h3 Online Purchases and Other Terms and Conditions
%p All purchases through our site or other transactions for the sale of services formed through the Website, or resulting from visits made by you, are governed by our Terms of Sale.
%p Additional terms and conditions may also apply to specific portions, services, or features of the Website. All such additional terms and conditions are hereby incorporated by this reference into these Terms of Use.
%h3 Linking to the Website and Social Media Features
%p You may link to the Website, provided you do so in a way that is fair and legal and does not damage our reputation or take advantage of it, but you must not establish a link in such a way as to suggest any form of association, approval, or endorsement on our part without our express written consent.
%p This Website may provide certain social media features that enable you to:
%ul
%li
%li Link from your own or certain third-party websites to certain content on this Website.
%li Send emails or other communications with certain content, or links to certain content, on this Website.
%li Cause limited portions of content on this Website to be displayed or appear to be displayed on your own or certain third-party websites.
%p You may use these features solely as they are provided by us, solely with respect to the content they are displayed with, and otherwise in accordance with any additional terms and conditions we provide with respect to such features.
%p The website from which you are linking, or on which you make certain content accessible, must comply in all respects with the Content Standards set out in these Terms of Use.
%p You agree to cooperate with us in causing any unauthorized framing or linking immediately to stop. We reserve the right to withdraw linking permission without notice. We may disable all or any social media features and any links at any time without notice in our discretion.
%h3 Links from the Website
%p If the Website contains links to other sites and resources provided by third parties, these links are provided for your convenience only. This includes links contained in advertisements, including banner advertisements and sponsored links. We have no control over the contents of those sites or resources, and accept no responsibility for them or for any loss or damage that may arise from your use of them. If you decide to access any of the third-party websites linked to this Website, you do so entirely at your own risk and subject to the terms and conditions of use for such websites.
%h3 Geographic Restrictions
%p Gab is based within the United States and does not have any presence of any kind outside of the United States. U.S. non-residents must not use the site for any purpose that would, if it occurred within the United States or any unincorporated territory of the United States, be unlawful under the federal law of the United States or under the laws of any state, federal district, territory or municipality of the United States.
%h3 Disclaimer of Warranties
%p You understand that we cannot and do not guarantee or warrant that files available for downloading from the internet or the Website will be free of viruses or other destructive code. You are responsible for implementing sufficient procedures and checkpoints to satisfy your particular requirements for anti-virus protection and accuracy of data input and output, and for maintaining a means external to our site for any reconstruction of any lost data. TO THE FULLEST EXTENT PROVIDED BY LAW, WE WILL NOT BE LIABLE FOR ANY LOSS OR DAMAGE CAUSED BY A DISTRIBUTED DENIAL-OF-SERVICE ATTACK, VIRUSES, OR OTHER TECHNOLOGICALLY HARMFUL MATERIAL THAT MAY INFECT YOUR COMPUTER EQUIPMENT, COMPUTER PROGRAMS, DATA, OR OTHER PROPRIETARY MATERIAL DUE TO YOUR USE OF THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE OR TO YOUR DOWNLOADING OF ANY MATERIAL POSTED ON IT, OR ON ANY WEBSITE LINKED TO IT.
%p YOUR USE OF THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE IS AT YOUR OWN RISK. THE WEBSITE, ITS CONTENT, AND ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS, WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. NEITHER THE COMPANY NOR ANY PERSON ASSOCIATED WITH THE COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE WEBSITE. WITHOUT LIMITING THE FOREGOING, NEITHER THE COMPANY NOR ANYONE ASSOCIATED WITH THE COMPANY REPRESENTS OR WARRANTS THAT THE WEBSITE, ITS CONTENT, OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL BE ACCURATE, RELIABLE, ERROR-FREE, OR UNINTERRUPTED, THAT DEFECTS WILL BE CORRECTED, THAT OUR SITE OR THE SERVER THAT MAKES IT AVAILABLE ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS, OR THAT THE WEBSITE OR ANY SERVICES OR ITEMS OBTAINED THROUGH THE WEBSITE WILL OTHERWISE MEET YOUR NEEDS OR EXPECTATIONS.
%p TO THE FULLEST EXTENT PROVIDED BY LAW, THE COMPANY HEREBY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR PARTICULAR PURPOSE.
%p THE FOREGOING DOES NOT AFFECT ANY WARRANTIES THAT CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.
%h3 Limitation on Liability
%p TO THE FULLEST EXTENT PROVIDED BY LAW, IN NO EVENT WILL THE COMPANY, ITS AFFILIATES, OR THEIR LICENSORS, SERVICE PROVIDERS, EMPLOYEES, AGENTS, OFFICERS, OR DIRECTORS BE LIABLE FOR DAMAGES OF ANY KIND, UNDER ANY LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH YOUR USE, OR INABILITY TO USE, THE WEBSITE, ANY WEBSITES LINKED TO IT, ANY CONTENT ON THE WEBSITE OR SUCH OTHER WEBSITES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO, PERSONAL INJURY, PAIN AND SUFFERING, EMOTIONAL DISTRESS, LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, LOSS OF DATA, AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE.THE FOREGOING DOES NOT AFFECT ANY LIABILITY THAT CANNOT BE EXCLUDED OR LIMITED UNDER APPLICABLE LAW.
%h3 Indemnification
%p You agree to defend, indemnify, and hold harmless the Company, its affiliates, licensors, and service providers, and its and their respective officers, directors, employees, contractors, agents, licensors, suppliers, successors, and assigns from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys fees) arising out of or relating to your violation of these Terms of Use or your use of the Website, including, but not limited to, your User Contributions, any use of the Websites content, services, and products other than as expressly authorized in these Terms of Use, or your use of any information obtained from the Website.
%h3 Governing Law and Jurisdiction
%p All matters relating to the Website and these Terms of Use, and any dispute or claim arising therefrom or related thereto (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the internal laws of the State of Pennsylvania without giving effect to any choice or conflict of law provision or rule (whether of the State of Pennsylvania or any other jurisdiction).
%p Any legal suit, action, or proceeding arising out of, or related to, these Terms of Use or the Website shall be instituted exclusively in the federal courts of the United States or the courts of the State of Pennsylvania, in each case located in the City of Scranton and Lackawanna County, although we retain the right to bring any suit, action, or proceeding against you for breach of these Terms of Use in your state or country of residence or any other relevant jurisdiction. You waive any and all objections to the exercise of jurisdiction over you by such courts and to venue in such courts.
%h3 Arbitration
%p At Companys sole discretion, it may require you to submit any disputes arising from these Terms of Use or use of the Website, including disputes arising from or concerning their interpretation, violation, invalidity, non-performance, or termination, to final and binding arbitration under the Rules of Arbitration of the American Arbitration Association applying Pennsylvania law.
%h3 Limitation on Time to File Claims
%p ANY CAUSE OF ACTION OR CLAIM YOU MAY HAVE ARISING OUT OF OR RELATING TO THESE TERMS OF USE OR THE WEBSITE MUST BE COMMENCED WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES; OTHERWISE, SUCH CAUSE OF ACTION OR CLAIM IS PERMANENTLY BARRED.
%h3 Waiver and Severability
%p No waiver by the Company of any term or condition set out in these Terms of Use shall be deemed a further or continuing waiver of such term or condition or a waiver of any other term or condition, and any failure of the Company to assert a right or provision under these Terms of Use shall not constitute a waiver of such right or provision.
%p If any provision of these Terms of Use is held by a court or other tribunal of competent jurisdiction to be invalid, illegal, or unenforceable for any reason, such provision shall be eliminated or limited to the minimum extent such that the remaining provisions of the Terms of Use will continue in full force and effect.
%h3 Entire Agreement
%p The Terms of Use, our Privacy Policy, our Copyright Policy and any Terms of Sale constitute the sole and entire agreement between you and Gab AI Inc. regarding the Website and supersede all prior and contemporaneous understandings, agreements, representations, and warranties, both written and oral, regarding the Website.
%h3 Your Comments and Concerns
%p This Website is operated by GAB AI INC.
%p All notices of copyright infringement claims should be sent pursuant to the terms of our Copyright Policy in the manner and by the means set out therein.
%p All other feedback, comments, requests for technical support, and other communications relating to the Website should be directed to
%p
Gab AI Inc
%br
700 N State Street
%br
Clarks Summit, PA 18411
%p Or by contacting support (at) gab (dot) com.

@ -12,6 +12,7 @@
= image_pack_tag 'gab_logo.svg', alt: 'Gab Social'
= link_to t('home'), root_url, class: 'nav-link optional'
= link_to t('about.about_this'), about_path, class: 'nav-link'
= link_to 'Invest', 'https://invest.gab.com', class: 'nav-link'
.nav-center
.nav-right
- if user_signed_in?
@ -30,9 +31,11 @@
%span= "2019 Gab AI Inc. All Rights Reserved."
%ul
%li= link_to t('about.investors'), about_investors_path
%li= link_to t('about.source_code'), about_path + "#opensource"
%li= mail_to 'support@gab.ai', 'Press'
%li= link_to t('about.terms'), about_tos_path
%li= link_to t('about.privacy_policy'), about_privacy_path
%li= link_to 'Terms of Sale', about_sales_path
%li= link_to 'DMCA', about_dmca_path
%li= link_to 'Source Code', about_path + "#opensource"
%li= mail_to 'support@gab.com', 'Press'
%li= link_to 'Terms of Service', about_tos_path
%li= link_to 'Privacy Policy', about_privacy_path
= render template: 'layouts/application'

@ -6,7 +6,12 @@
.fields-row
.fields-row__column.fields-group.fields-row__column-6
= f.input :display_name, wrapper: :with_label, input_html: { maxlength: 30 }, hint: false
- if @account.is_verified
%span Verified accounts cannot changed display names
%br
%br
- else
= f.input :display_name, wrapper: :with_label, input_html: { maxlength: 30 }, hint: false
= f.input :note, wrapper: :with_label, input_html: { maxlength: 500 }, hint: false
.fields-row

@ -131,7 +131,6 @@ Rails.application.routes.draw do
get :player
end
resources :tags, only: [:show]
resources :emojis, only: [:show]
resources :invites, only: [:index, :create, :destroy]
resources :filters, except: [:show]
@ -434,7 +433,8 @@ Rails.application.routes.draw do
get '/about/tos', to: 'about#terms'
get '/about/privacy', to: 'about#privacy'
get '/about/investors', to: 'about#investors'
get '/about/guidelines', to: 'about#guidelines'
get '/about/dmca', to: 'about#dmca'
get '/about/sales', to: 'about#sales'
get '/(*any)', to: 'home#index', as: :web
root 'home#index'
@ -451,6 +451,7 @@ Rails.application.routes.draw do
get '/:account_username/posts/:id', to: 'statuses#show', as: :short_account_status
get '/:account_username/posts/:id/embed', to: 'statuses#embed', as: :embed_short_account_status
resources :tags, only: [:show]
match '*unmatched_route',
via: :all,