Merge branch 'doorkeeper_applications_scafold'
This commit is contained in:
commit
7d5d5e53b1
11 changed files with 146 additions and 6 deletions
52
app/controllers/admin/applications_controller.rb
Normal file
52
app/controllers/admin/applications_controller.rb
Normal file
|
@ -0,0 +1,52 @@
|
|||
class Admin::ApplicationsController < Admin::ApplicationController
|
||||
before_action :set_application, only: [:show, :edit, :update, :destroy]
|
||||
|
||||
def index
|
||||
@applications = Doorkeeper::Application.where("owner_id IS NULL")
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def new
|
||||
@application = Doorkeeper::Application.new
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def create
|
||||
@application = Doorkeeper::Application.new(application_params)
|
||||
|
||||
if @application.save
|
||||
flash[:notice] = I18n.t(:notice, scope: [:doorkeeper, :flash, :applications, :create])
|
||||
redirect_to admin_application_url(@application)
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
if @application.update(application_params)
|
||||
redirect_to admin_application_path(@application), notice: 'Application was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@application.destroy
|
||||
redirect_to admin_applications_url, notice: 'Application was successfully destroyed.'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_application
|
||||
@application = Doorkeeper::Application.where("owner_id IS NULL").find(params[:id])
|
||||
end
|
||||
|
||||
# Only allow a trusted parameter "white list" through.
|
||||
def application_params
|
||||
params[:doorkeeper_application].permit(:name, :redirect_uri)
|
||||
end
|
||||
end
|
|
@ -9,10 +9,8 @@ class Oauth::ApplicationsController < Doorkeeper::ApplicationsController
|
|||
def create
|
||||
@application = Doorkeeper::Application.new(application_params)
|
||||
|
||||
if Doorkeeper.configuration.confirm_application_owner?
|
||||
@application.owner = current_user
|
||||
end
|
||||
|
||||
@application.owner = current_user
|
||||
|
||||
if @application.save
|
||||
flash[:notice] = I18n.t(:notice, scope: [:doorkeeper, :flash, :applications, :create])
|
||||
redirect_to oauth_application_url(@application)
|
||||
|
|
4
app/views/admin/applications/_delete_form.html.haml
Normal file
4
app/views/admin/applications/_delete_form.html.haml
Normal file
|
@ -0,0 +1,4 @@
|
|||
- submit_btn_css ||= 'btn btn-link btn-remove btn-small'
|
||||
= form_tag admin_application_path(application) do
|
||||
%input{:name => "_method", :type => "hidden", :value => "delete"}/
|
||||
= submit_tag 'Destroy', onclick: "return confirm('Are you sure?')", class: submit_btn_css
|
24
app/views/admin/applications/_form.html.haml
Normal file
24
app/views/admin/applications/_form.html.haml
Normal file
|
@ -0,0 +1,24 @@
|
|||
= form_for [:admin, @application], url: @url, html: {class: 'form-horizontal', role: 'form'} do |f|
|
||||
- if application.errors.any?
|
||||
.alert.alert-danger{"data-alert" => ""}
|
||||
%p Whoops! Check your form for possible errors
|
||||
= content_tag :div, class: "form-group#{' has-error' if application.errors[:name].present?}" do
|
||||
= f.label :name, class: 'col-sm-2 control-label'
|
||||
.col-sm-10
|
||||
= f.text_field :name, class: 'form-control'
|
||||
= doorkeeper_errors_for application, :name
|
||||
= content_tag :div, class: "form-group#{' has-error' if application.errors[:redirect_uri].present?}" do
|
||||
= f.label :redirect_uri, class: 'col-sm-2 control-label'
|
||||
.col-sm-10
|
||||
= f.text_area :redirect_uri, class: 'form-control'
|
||||
= doorkeeper_errors_for application, :redirect_uri
|
||||
%span.help-block
|
||||
Use one line per URI
|
||||
- if Doorkeeper.configuration.native_redirect_uri
|
||||
%span.help-block
|
||||
Use
|
||||
%code= Doorkeeper.configuration.native_redirect_uri
|
||||
for local tests
|
||||
.form-actions
|
||||
= f.submit 'Submit', class: "btn btn-primary wide"
|
||||
= link_to "Cancel", admin_applications_path, class: "btn btn-default"
|
3
app/views/admin/applications/edit.html.haml
Normal file
3
app/views/admin/applications/edit.html.haml
Normal file
|
@ -0,0 +1,3 @@
|
|||
%h3.page-title Edit application
|
||||
- @url = admin_application_path(@application)
|
||||
= render 'form', application: @application
|
22
app/views/admin/applications/index.html.haml
Normal file
22
app/views/admin/applications/index.html.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
%h3.page-title
|
||||
System OAuth applications
|
||||
%p.light
|
||||
System OAuth application does not belong to certain user and can be managed only by admins
|
||||
%hr
|
||||
%p= link_to 'New Application', new_admin_application_path, class: 'btn btn-success'
|
||||
%table.table.table-striped
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Callback URL
|
||||
%th Clients
|
||||
%th
|
||||
%th
|
||||
%tbody
|
||||
- @applications.each do |application|
|
||||
%tr{:id => "application_#{application.id}"}
|
||||
%td= link_to application.name, admin_application_path(application)
|
||||
%td= application.redirect_uri
|
||||
%td= application.access_tokens.count
|
||||
%td= link_to 'Edit', edit_admin_application_path(application), class: 'btn btn-link'
|
||||
%td= render 'delete_form', application: application
|
3
app/views/admin/applications/new.html.haml
Normal file
3
app/views/admin/applications/new.html.haml
Normal file
|
@ -0,0 +1,3 @@
|
|||
%h3.page-title New application
|
||||
- @url = admin_applications_path
|
||||
= render 'form', application: @application
|
26
app/views/admin/applications/show.html.haml
Normal file
26
app/views/admin/applications/show.html.haml
Normal file
|
@ -0,0 +1,26 @@
|
|||
%h3.page-title
|
||||
Application: #{@application.name}
|
||||
|
||||
|
||||
%table.table
|
||||
%tr
|
||||
%td
|
||||
Application Id
|
||||
%td
|
||||
%code#application_id= @application.uid
|
||||
%tr
|
||||
%td
|
||||
Secret:
|
||||
%td
|
||||
%code#secret= @application.secret
|
||||
|
||||
%tr
|
||||
%td
|
||||
Callback url
|
||||
%td
|
||||
- @application.redirect_uri.split.each do |uri|
|
||||
%div
|
||||
%span.monospace= uri
|
||||
.form-actions
|
||||
= link_to 'Edit', edit_admin_application_path(@application), class: 'btn btn-primary wide pull-left'
|
||||
= render 'delete_form', application: @application, submit_btn_css: 'btn btn-danger prepend-left-10'
|
|
@ -11,7 +11,7 @@
|
|||
Projects
|
||||
= nav_link(controller: :users) do
|
||||
= link_to admin_users_path do
|
||||
%i.fa.fa-users
|
||||
%i.fa.fa-user
|
||||
%span
|
||||
Users
|
||||
= nav_link(controller: :groups) do
|
||||
|
@ -45,3 +45,9 @@
|
|||
%i.fa.fa-cogs
|
||||
%span
|
||||
Settings
|
||||
|
||||
= nav_link(controller: :applications) do
|
||||
= link_to admin_applications_path do
|
||||
%i.fa.fa-cloud
|
||||
%span
|
||||
Applications
|
||||
|
|
|
@ -40,7 +40,7 @@ Doorkeeper.configure do
|
|||
# Optional parameter :confirmation => true (default false) if you want to enforce ownership of
|
||||
# a registered application
|
||||
# Note: you must also run the rails g doorkeeper:application_owner generator to provide the necessary support
|
||||
enable_application_owner :confirmation => true
|
||||
enable_application_owner :confirmation => false
|
||||
|
||||
# Define access token scopes for your provider
|
||||
# For more information go to
|
||||
|
|
|
@ -97,6 +97,8 @@ Gitlab::Application.routes.draw do
|
|||
end
|
||||
end
|
||||
|
||||
resources :applications
|
||||
|
||||
resources :groups, constraints: { id: /[^\/]+/ } do
|
||||
member do
|
||||
put :project_teams_update
|
||||
|
|
Loading…
Reference in a new issue