From b106545d318c77e6b6ca6f09973c969acbfbb5cf Mon Sep 17 00:00:00 2001 From: zmagod Date: Wed, 13 Dec 2017 08:57:50 +0100 Subject: [PATCH] fixes per @duco 's request --- .../client_api/permissions_controller.rb | 2 +- app/javascript/src/services/permissions/index.js | 15 +++++++++------ config/routes.rb | 2 +- .../client_api/permissions_controller_spec.rb | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/controllers/client_api/permissions_controller.rb b/app/controllers/client_api/permissions_controller.rb index 78a56384c..5ae4144bf 100644 --- a/app/controllers/client_api/permissions_controller.rb +++ b/app/controllers/client_api/permissions_controller.rb @@ -2,7 +2,7 @@ module ClientApi class PermissionsController < ApplicationController before_action :generate_permissions_object, only: :state - def state + def status respond_to do |format| format.json do render json: @permissions, status: :ok diff --git a/app/javascript/src/services/permissions/index.js b/app/javascript/src/services/permissions/index.js index 27d60607d..2b1eafb85 100644 --- a/app/javascript/src/services/permissions/index.js +++ b/app/javascript/src/services/permissions/index.js @@ -11,9 +11,9 @@ > Permissions.connect(MyComponent, ["can_update_team?", "can_read_team?"], "Team"); > - Now you can access to your permissions through component params. The permissions + Now you can access your permissions through component params. The permissions you required have 3 states [true, false, null]. Null is when you are waiting for server response. - You can use methods params.can_uspdate_team? or whatever permissions you declare + You can use methods params.can_update_team? or whatever permissions you declare */ import * as React from "react"; import { getPermissionStatus } from "../api/permissions_api"; @@ -22,6 +22,9 @@ type State = { permissions: any }; +type PermissionsObject = { + [string]: boolean +} /* This function accepts 3 arguments which are REQUIRED 1.) WrappedComponent: Component that you want to have permissions @@ -34,15 +37,15 @@ export function connect( requiredPermissions: Array = [], resource: string ) { - let parsedPermission = {}; + const parsedPermissions: PermissionsObject = {}; requiredPermissions.forEach(el => { - parsedPermission[el] = null; + parsedPermissions[el] = null; }); return class extends React.Component<*, State, *> { constructor(props: any) { super(props); - this.state = { permissions: parsedPermission }; + this.state = { permissions: parsedPermissions }; } componentDidMount(): void { @@ -51,7 +54,7 @@ export function connect( this.setState({ permissions: data }); }) .catch(() => { - let permissions = {}; + const permissions: PermissionsObject = {}; requiredPermissions.forEach(el => { permissions[el] = false; }); diff --git a/config/routes.rb b/config/routes.rb index c9c312bc6..f80680048 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -18,7 +18,7 @@ Rails.application.routes.draw do get '/settings/*all', to: 'client_api/settings#index' namespace :client_api, defaults: { format: 'json' } do - post '/premissions', to: 'permissions#state' + post '/premissions', to: 'permissions#status' %i(activities teams notifications users configurations).each do |path| draw path end diff --git a/spec/controllers/client_api/permissions_controller_spec.rb b/spec/controllers/client_api/permissions_controller_spec.rb index e487d94c2..8d7698a77 100644 --- a/spec/controllers/client_api/permissions_controller_spec.rb +++ b/spec/controllers/client_api/permissions_controller_spec.rb @@ -3,11 +3,11 @@ require 'rails_helper' describe ClientApi::PermissionsController, type: :controller do login_user - describe '#state' do + describe '#status' do let(:params) do { parsePermission: ['can_view_team'], resource: 'UserTeam' } end - let(:subject) { post :state, format: :json, params: params } + let(:subject) { post :status, format: :json, params: params } it { is_expected.to be_success } end end