rubygems/rubygems.org

View on GitHub
app/views/mailer/mfa_required_popular_gems_announcement.html.erb

Summary

Maintainability
Test Coverage
<% @title = @heading %>
<% @sub_title = "👋 Hi #{@user.handle}" %>

<!-- Body -->
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
  <tr>
    <td class="content-spacing" style="font-size:0pt; line-height:0pt; text-align:left" width="20"></td>
    <td>
      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="35" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="40" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <div class="h3-1-center" style="color:#1e1e1e; font-family:Georgia, serif; min-width:auto !important; font-size:20px; line-height:26px;">
        <p>
          Effective today, multi-factor authentication (MFA) is required on your RubyGems account.
        </p>
        <br/>

        <% if @user.mfa_disabled? %>
          <p>
            A number of operations are now restricted until you enable MFA.
            These restrictions include editing profile pages on the web, signing in on the command line, and performing <a href="https://guides.rubygems.org/mfa-requirement-opt-in/#privileged-operations" target="_blank">privileged actions</a> (ie. push, yank, add/remove owners).
          </p>
          <br/>

          <p> 
            To re-enable these operations for your account, <b>please enable multi-factor authentication 🙏.</b>
          </p>
          <br/>
        <% elsif @user.mfa_ui_only? %>
          <p>
            Your current MFA level is no longer recommended. In fact, it's deprecated.
            <b>You need to upgrade your RubyGems account to a stronger MFA level 🙏.</b>
          </p>
          <br/>

          <p>
            We recommend setting the
            <a href="https://guides.rubygems.org/setting-up-multifactor-authentication/#authentication-levels" target="_blank">MFA level</a>
            to <b><i>UI and API</i></b>. However, <b><i>UI and gem signin</i></b> is acceptable too.
          </p>
          <br/>

          <p>
            A number of operations are restricted until you upgrade your MFA setting.
            These restrictions include editing profile pages on the web, signing in on the command line, and performing <a href="https://guides.rubygems.org/mfa-requirement-opt-in/#privileged-operations" target="_blank">privileged actions</a> (ie. push, yank, add/remove owners).
          </p>
          <br/>
        <% end %>

        <p>
          For more information, check out our <a href="https://blog.rubygems.org/2022/08/15/requiring-mfa-on-popular-gems.html" target="_blank">announcement</a>.
        </p>
        <br/>

        <p>Thank you for making the RubyGems ecosystem more secure.</p>
      </div>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="30" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <% if @user.mfa_disabled? || @user.mfa_ui_only? %>

        <!-- Button -->
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td align="center">
              <table width="210" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td align="center" bgcolor="#e9573f">
                    <table border="0" cellspacing="0" cellpadding="0">
                      <tr>
                        <td class="img" style="font-size:0pt; line-height:0pt; text-align:left" width="15">
                          <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">
                            <tr>
                              <td height="50" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td>
                            </tr>
                          </table>
                        </td>
                        <td bgcolor="#e9573f">
                          <div class="text-btn" style="color:#ffffff; font-family:Arial, sans-serif; min-width:auto !important; font-size:16px; line-height:20px; text-align:center">
                            <a href=<%= new_multifactor_auth_url %> target="_blank" class="link-white" style="color:#ffffff; text-decoration:none">
                              <span class="link-white" style="color:#ffffff; text-decoration:none">
                                <%= "ENABLE MFA" if @user.mfa_disabled? %>
                                <%= "STRENGTHEN MFA LEVEL" if @user.mfa_ui_only? %>
                              </span>
                            </a>
                          </div>
                        </td>
                        <td class="img" style="font-size:0pt; line-height:0pt; text-align:left" width="15"></td>
                      </tr>
                    </table>
                  </td>
                </tr>
              </table>
            </td>
          </tr>
        </table>
        <!-- END Button -->
      <% end %>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="40" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <!-- Adding a horizontal rule -->
      <table width="100%">
        <tr>
          <td width="100%" bgcolor="#cccccc" height="1" style="font-size: 1px; line-height: 1px;">&nbsp;</td>
        </tr>
      </table>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="40" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <div class="h3-1-center" style="color:#1e1e1e; font-family:Georgia, serif; min-width:auto !important; font-size:20px; line-height:26px; text-align:center">
        Check our guides for more details on <%= link_to("setting up multi-factor authentication (MFA)", "https://guides.rubygems.org/setting-up-multifactor-authentication/") %>  and  <%= link_to("using multi-factor authentication (MFA) with command line", "https://guides.rubygems.org/using-mfa-in-command-line/") %>.
      </div>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="35" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

      <table width="100%" border="0" cellspacing="0" cellpadding="0" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%"><tr><td height="35" class="spacer" style="font-size:0pt; line-height:0pt; text-align:center; width:100%; min-width:100%">&nbsp;</td></tr></table>

    </td>
    <td class="content-spacing" style="font-size:0pt; line-height:0pt; text-align:left" width="20"></td>
  </tr>
</table>
<!-- END Body -->