mdata 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/mdata +148 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5c5c90e7844acf88c75a815848b11be55720b2b
4
- data.tar.gz: e0fc9d5520935aa2665d4a48e5c5205667635a53
3
+ metadata.gz: 6f7283c8242cfdcae92ef9b93bb061e6307fc6ec
4
+ data.tar.gz: d60882e942171bd126e7c921bbc87346b6ee3052
5
5
  SHA512:
6
- metadata.gz: d12e73f44b6bcb30fe20afc67b3b6a5f81c2a6adb936b20d59679cbd16e97329e1496e0524d612f12d59c3b94f1a3cf2ed1a2400b0df4e4b16eb5c808fbc14a1
7
- data.tar.gz: b7d9b3633dffb09baf1971ad99f6581af09a2e6846f8798f68ebdaf4594ca4b9240c6a1345d59147d0857156040f2ce2df652c1469d607648d5f9758711992e9
6
+ metadata.gz: 24d038f1f3a656007ed6b0f2ac4e714609d843aed40f4d7b16a5224353e81a7e9663721c497d84d96ff160ce8b5c90a955062a485942b1ad27334895cee1f137
7
+ data.tar.gz: d82ee3e7cec83d33a8d746137fdd9d5974e5531c396fb34fc1cac9a9427ec004acdb14dde5d0da20b2761087bb37b4fed2abf55ffa6bf5c567e383c555c013eb
data/bin/mdata CHANGED
@@ -5,7 +5,7 @@ require 'commander/import'
5
5
  require 'mdata/metadata'
6
6
  require 'terminal-table'
7
7
 
8
- program :version, '1.3.0'
8
+ program :version, '1.4.0'
9
9
  program :description, 'Your Salesforce metadata navigator and manipulator'
10
10
  program :help, 'Author', 'Ben Burwell <ben.burwell@trifecta.com>'
11
11
 
@@ -871,6 +871,147 @@ command :'permissionset fieldPermissions:delete' do |c|
871
871
  end
872
872
  end
873
873
 
874
+ # Permissionset - Class Access - Read
875
+ command :'permissionset classAccess:read' do |c|
876
+ c.syntax = 'mdata permissionset classAccess:read --permissionset PERMISSIONSET [options]'
877
+ c.summary = 'View Apex class access for a permission set'
878
+ c.option '--permissionset PERMISSIONSET', String, 'The permission set to read'
879
+ c.option '--class CLASS', String, 'Optionally, a particular class to look for'
880
+ c.action do |args, opts|
881
+ begin
882
+ raise ArgumentError, 'no permission set specified' if opts.permissionset.nil?
883
+ permissionset = Salesforce::Metadata::PermissionSet.read opts.permissionset, opts.dir
884
+ permissionset.classAccesses.keep_if { |x| x.apexClass == opts.class } unless opts.class.nil?
885
+ permissionset.classAccesses.sort! { |a, b| a.apexClass <=> b.apexClass }
886
+ rows = []
887
+ permissionset.classAccesses.each do |cls|
888
+ rows << [ cls.apexClass, cls.enabled ]
889
+ end
890
+ table = Terminal::Table.new :rows => rows, :headings => ['Class', 'Enabled']
891
+ puts table
892
+ rescue ArgumentError => e
893
+ puts "Error executing command: #{e.message}"
894
+ end
895
+ end
896
+ end
897
+
898
+ # Permissionset - Class Access - Grant
899
+ command :'permissionset classAccess:grant' do |c|
900
+ c.syntax = 'mdata permissionset classAccess:grant --permissionset PERMISSIONSET --class CLASS [options]'
901
+ c.summary = 'Grant Apex class access for a permissionset'
902
+ c.option '--permissionset PERMISSIONSET', String, 'The permissionset to grant access on'
903
+ c.option '--class CLASS', String, 'The class to grant access to'
904
+ c.action do |args, opts|
905
+ begin
906
+ raise ArgumentError, 'no permissionset specified' if opts.permissionset.nil?
907
+ raise ArgumentError, 'no class specified' if opts.class.nil?
908
+ permissionset = Salesforce::Metadata::PermissionSet.read opts.permissionset, opts.dir
909
+ idx = permissionset.classAccesses.find_index { |x| x.apexClass == opts.class }
910
+ if idx.nil?
911
+ ca = Salesforce::Types::PermissionSetApexClassAccess.new
912
+ ca.apexClass = opts.class
913
+ permissionset.classAccesses.push ca
914
+ idx = permissionset.classAccesses.count - 1
915
+ end
916
+ permissionset.classAccesses[idx].enabled = 'true'
917
+ permissionset.save
918
+ rescue ArgumentError => e
919
+ puts "Error executing command: #{e.message}"
920
+ end
921
+ end
922
+ end
923
+
924
+ # Permissionset - Class Access - Disable
925
+ command :'permissionset classAccess:revoke' do |c|
926
+ c.syntax = 'mdata permissionset classAccess:revoke --permissionset PERMISSIONSET --class CLASS [options]'
927
+ c.summary = 'Revoke Apex class access for a permissionset'
928
+ c.option '--permissionset PERMISSIONSET', String, 'The permissionset to revoke access on'
929
+ c.option '--class CLASS', String, 'The class to revoke access to'
930
+ c.action do |args, opts|
931
+ begin
932
+ raise ArgumentError, 'no permissionset specified' if opts.permissionset.nil?
933
+ raise ArgumentError, 'no class specified' if opts.class.nil?
934
+ permissionset = Salesforce::Metadata::PermissionSet.read opts.permissionset, opts.dir
935
+ idx = permissionset.classAccesses.find_index { |x| x.apexClass == opts.class }
936
+ if idx.nil?
937
+ ca = Salesforce::Types::PermissionSetApexClassAccess.new
938
+ ca.apexClass = opts.class
939
+ permissionset.classAccesses.push ca
940
+ idx = permissionset.classAccesses.count - 1
941
+ end
942
+ permissionset.classAccesses[idx].enabled = 'false'
943
+ permissionset.save
944
+ rescue ArgumentError => e
945
+ puts "Error executing command: #{e.message}"
946
+ end
947
+ end
948
+ end
949
+
950
+ # Permissionset - Class Access - Delete
951
+ command :'permissionset classAccess:delete' do |c|
952
+ c.syntax = 'mdata permissionset classAccess:delete --permissionset PERMISSIONSET --class CLASS [options]'
953
+ c.summary = 'Delete Apex class access for a permissionset'
954
+ c.option '--permissionset PERMISSIONSET', String, 'The permissionset to delete access on'
955
+ c.option '--class CLASS', String, 'The class to delete access to'
956
+ c.action do |args, opts|
957
+ begin
958
+ raise ArgumentError, 'no permissionset specified' if opts.permissionset.nil?
959
+ raise ArgumentError, 'no class specified' if opts.class.nil?
960
+ permissionset = Salesforce::Metadata::PermissionSet.read opts.permissionset, opts.dir
961
+ permissionset.classAccesses.delete_if { |x| x.apexClass == opts.class }
962
+ permissionset.save
963
+ rescue ArgumentError => e
964
+ puts "Error executing command: #{e.message}"
965
+ end
966
+ end
967
+ end
968
+
969
+ # Permissionset - Class Access - Copy
970
+ command :'permissionset classAccess:copy' do |c|
971
+ c.syntax = 'mdata permissionset classAccess:copy [options]'
972
+ c.summary = 'Copy class access from one class to another or one permissionset to another.'
973
+ c.option '--fromPermissionset permissionset', String, 'The permissionset to copy from'
974
+ c.option '--toPermissionset permissionset', String, 'The permissionset to copy to'
975
+ c.option '--permissionset PERMISSIONSET', String, 'A shortcut for specifying the same source and destination permissionset'
976
+ c.option '--fromClass CLASS', String, 'The class to copy from'
977
+ c.option '--toClass CLASS', String, 'The class to copy to'
978
+ c.option '--class CLASS', String, 'A shortcut for specifying the same source and destination class'
979
+ c.action do |args, opts|
980
+ opts.fromPermissionset = opts.permissionset unless opts.permissionset.nil?
981
+ opts.toPermissionset = opts.permissionset unless opts.permissionset.nil?
982
+ opts.fromClass = opts.class unless opts.class.nil?
983
+ opts.toClass = opts.class unless opts.class.nil?
984
+
985
+ begin
986
+ raise ArgumentError, 'no source permissionset' if opts.fromPermissionset.nil?
987
+ raise ArgumentError, 'no destination permissionset' if opts.toPermissionset.nil?
988
+ raise ArgumentError, 'no source class' if opts.fromClass.nil?
989
+ raise ArgumentError, 'no destination class' if opts.toClass.nil?
990
+
991
+ from_permissionset = Salesforce::Metadata::PermissionSet.read opts.fromPermissionset, opts.dir
992
+ src_idx = from_permissionset.classAccesses.find_index { |x| x.apexClass == opts.fromClass }
993
+ raise ArgumentError, 'source class not found in source permissionset' if src_idx.nil?
994
+
995
+ to_permissionset = Salesforce::Metadata::PermissionSet.read opts.toPermissionset, opts.dir
996
+ dst_idx = to_permissionset.classAccesses.find_index { |x| x.apexClass == opts.toClass }
997
+
998
+ if dst_idx.nil?
999
+ ca = Salesforce::Types::PermissionSetApexClassAccess.new
1000
+ ca.apexClass = opts.toClass
1001
+ to_permissionset.classAccesses.push ca
1002
+ dst_idx = to_permissionset.classAccesses.count - 1
1003
+ end
1004
+
1005
+ val = from_permissionset.classAccesses[src_idx]
1006
+ to_permissionset.classAccesses[dst_idx] = val
1007
+
1008
+ to_permissionset.save
1009
+ rescue ArgumentError => e
1010
+ puts "Error executing command: #{e.message}"
1011
+ end
1012
+ end
1013
+ end
1014
+
874
1015
  alias_command :'pr fp:r', :'profile fieldPermissions:read'
875
1016
  alias_command :'pr fp:s', :'profile fieldPermissions:set'
876
1017
  alias_command :'pr fp:g', :'profile fieldPermissions:grant'
@@ -897,3 +1038,9 @@ alias_command :'ps fp:g', :'permissionset fieldPermissions:grant'
897
1038
  alias_command :'ps fp:v', :'permissionset fieldPermissions:revoke'
898
1039
  alias_command :'ps fp:c', :'permissionset fieldPermissions:copy'
899
1040
  alias_command :'ps fp:d', :'permissionset fieldPermissions:delete'
1041
+
1042
+ alias_command :'ps ca:r', :'permissionset classAccess:read'
1043
+ alias_command :'ps ca:g', :'permissionset classAccess:grant'
1044
+ alias_command :'ps ca:v', :'permissionset classAccess:revoke'
1045
+ alias_command :'ps ca:d', :'permissionset classAccess:delete'
1046
+ alias_command :'ps ca:c', :'permissionset classAccess:copy'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdata
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Burwell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-07 00:00:00.000000000 Z
11
+ date: 2015-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander