Für meine Website, ich versuche, einen Weg zu finden, wo, wenn ein Benutzer angemeldet ist, dann können sie einen Benutzer für jemanden erstellen. Für die Website möchte ich nicht, dass jemand sich anmeldet. Nur ein Benutzer kann jemanden aus Sicherheitsgründen anmelden. Ich kann nicht herausfinden, wie das geht. Ich benutze das Gerät für die Anmeldung/Anmeldung.Schienen: Angemeldeter Benutzer kann einen neuen Benutzer erstellen
Ich poste etwas von meinem Code, aber ich bin mir nicht sicher, welche ich posten sollte, noch neu zu Schienen.
Hier möchte ich den Link einen Benutzer erstellen/anmelden. Die Anmeldeseite sollte nur angezeigt werden, wenn ein Benutzer angemeldet ist.
<!DOCTYPE html>
<html>
...
<body>
<div class = "auth">
<% if !user_signed_in? %>
<button class = "signed_in"><%= link_to "Login", new_user_session_path %></button>
<% end %>
<% if user_signed_in? %>
<div class = "buttons">
<button class = "button"><%= link_to("Logout", destroy_user_session_path, :method => :delete) %> </button>
</div>
<% end %>
</div>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</body>
</html>
Ich werde dies auch posten. Ich denke, so funktionieren die Links bei der Authentifizierung.
<%- if controller_name != 'sessions' %>
<%= link_to "Log in", new_session_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{OmniAuth::Utils.camelize(provider)}", omniauth_authorize_path(resource_name, provider) %><br />
<% end -%>
<% end -%>
Hier ist, wo ich rate, wie Sie sich anmelden. Ich möchte, dass diese Seite nur angezeigt wird, wenn ein Benutzer angemeldet ist. Das Problem, dass ich sehe, dass ein Benutzer THNIK nur auf die Anmeldeseite gelangen kann, wenn er oder sie ausgeloggt ist. Ich möchte, dass die Anmeldeseite NUR angezeigt wird, wenn ein Benutzer angemeldet ist. Nicht sicher, wie das funktioniert.
<article class = "sign" >
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
</article>
Ich stellte auch die Migration Code sieht wichtige
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
Wie ich schon sagte, ich bin nicht ganz sicher, was Code, den ich für die Führung abgeben sollte. Lass mich wissen, ob ich mehr posten sollte, um herauszufinden, wie das geht.
Auch zu beachten, ich habe derzeit keinen Code in meinem Benutzer-Controller, vielleicht muss ich Sachen hinzufügen, damit dies funktioniert?
Dies sollte Ihnen irgendwie helfen https://stackoverflow.com/questions/23140117/allow-a-user-to-add-new-users-in-devise-and-remain-logged-in-as-selbst – Pavan