bonita 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/Rakefile +6 -0
- data/VERSION +1 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bonita.gemspec +41 -0
- data/lib/bonita.rb +52 -0
- data/lib/bonita/client.rb +105 -0
- data/lib/bonita/error.rb +25 -0
- data/lib/bonita/error_handler.rb +20 -0
- data/lib/bonita/mappings/bpm/process_mapping.rb +31 -0
- data/lib/bonita/mappings/customuserinfo/definition_mapping.rb +23 -0
- data/lib/bonita/mappings/customuserinfo/user_mapping.rb +18 -0
- data/lib/bonita/mappings/customuserinfo/value_mapping.rb +16 -0
- data/lib/bonita/mappings/error_mapping.rb +18 -0
- data/lib/bonita/mappings/identity/group_mapping.rb +39 -0
- data/lib/bonita/mappings/identity/membership_mapping.rb +26 -0
- data/lib/bonita/mappings/identity/role_mapping.rb +30 -0
- data/lib/bonita/mappings/identity/user_mapping.rb +53 -0
- data/lib/bonita/middleware/csrf.rb +19 -0
- data/lib/bonita/models/base_model.rb +29 -0
- data/lib/bonita/models/bpm/process.rb +19 -0
- data/lib/bonita/models/customuserinfo/definition.rb +10 -0
- data/lib/bonita/models/customuserinfo/user.rb +10 -0
- data/lib/bonita/models/customuserinfo/value.rb +8 -0
- data/lib/bonita/models/identity/group.rb +18 -0
- data/lib/bonita/models/identity/membership.rb +12 -0
- data/lib/bonita/models/identity/role.rb +15 -0
- data/lib/bonita/models/identity/user.rb +23 -0
- data/lib/bonita/resources/bpm/process_resource.rb +38 -0
- data/lib/bonita/resources/customuserinfo/definition_resource.rb +31 -0
- data/lib/bonita/resources/customuserinfo/user_resource.rb +18 -0
- data/lib/bonita/resources/customuserinfo/value_resource.rb +18 -0
- data/lib/bonita/resources/identity/group_resource.rb +43 -0
- data/lib/bonita/resources/identity/membership_resource.rb +31 -0
- data/lib/bonita/resources/identity/role_resource.rb +44 -0
- data/lib/bonita/resources/identity/user_resource.rb +58 -0
- data/lib/bonita/utils.rb +93 -0
- data/lib/bonita/version.rb +6 -0
- metadata +194 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module ErrorHandler
|
3
|
+
def self.included(base)
|
4
|
+
base.send(:resources) do
|
5
|
+
default_handler do |response|
|
6
|
+
next if (200...299).cover?(response.status)
|
7
|
+
case response.status
|
8
|
+
when 401
|
9
|
+
if response.respond_to?(:reason_phrase)
|
10
|
+
raise Bonita::UnauthorizedError, response.reason_phrase
|
11
|
+
else
|
12
|
+
raise Bonita::AuthError
|
13
|
+
end
|
14
|
+
else
|
15
|
+
raise Bonita::Error.new(response.status, response.body)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Bpm
|
4
|
+
class ProcessMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping Process
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :activationState
|
12
|
+
property :actorinitiatorid
|
13
|
+
property :configurationState
|
14
|
+
property :deployedBy
|
15
|
+
property :deploymentDate
|
16
|
+
property :description
|
17
|
+
property :displayDescription
|
18
|
+
property :displayName
|
19
|
+
property :id
|
20
|
+
property :last_update_date
|
21
|
+
property :name
|
22
|
+
property :version
|
23
|
+
end
|
24
|
+
|
25
|
+
scoped :instantiated do
|
26
|
+
property :caseId
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Customuserinfo
|
4
|
+
class DefinitionMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping Definition
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :description
|
12
|
+
property :id
|
13
|
+
property :name
|
14
|
+
end
|
15
|
+
|
16
|
+
scoped :create do
|
17
|
+
property :description
|
18
|
+
property :name
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Customuserinfo
|
4
|
+
class UserMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping User
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :definitionId, include: DefinitionMapping
|
12
|
+
property :userId
|
13
|
+
property :value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
class ErrorMapping
|
4
|
+
Error = Struct.new(:exception, :message, :explanations)
|
5
|
+
|
6
|
+
include Kartograph::DSL
|
7
|
+
|
8
|
+
kartograph do
|
9
|
+
mapping Error
|
10
|
+
|
11
|
+
scoped :read do
|
12
|
+
property :exception
|
13
|
+
property :message
|
14
|
+
property :explanations
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class GroupMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping Group
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :created_by_user_id
|
12
|
+
property :creation_date
|
13
|
+
property :description
|
14
|
+
property :displayName
|
15
|
+
property :icon
|
16
|
+
property :id
|
17
|
+
property :last_update_date
|
18
|
+
property :name
|
19
|
+
property :parent_group_id
|
20
|
+
property :parent_path
|
21
|
+
property :path
|
22
|
+
end
|
23
|
+
|
24
|
+
scoped :create do
|
25
|
+
property :description
|
26
|
+
property :displayName
|
27
|
+
property :icon
|
28
|
+
property :name
|
29
|
+
property :parent_group_id
|
30
|
+
end
|
31
|
+
|
32
|
+
scoped :update do
|
33
|
+
property :displayName
|
34
|
+
property :name
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class MembershipMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping Membership
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :assigned_by_user_id
|
12
|
+
property :assigned_date
|
13
|
+
property :group_id
|
14
|
+
property :role_id
|
15
|
+
property :user_id
|
16
|
+
end
|
17
|
+
|
18
|
+
scoped :create do
|
19
|
+
property :group_id
|
20
|
+
property :role_id
|
21
|
+
property :user_id
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class RoleMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping Role
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :created_by_user_id
|
12
|
+
property :creation_date
|
13
|
+
property :description
|
14
|
+
property :displayName
|
15
|
+
property :icon
|
16
|
+
property :id
|
17
|
+
property :last_update_date
|
18
|
+
property :name
|
19
|
+
end
|
20
|
+
|
21
|
+
scoped :update, :create do
|
22
|
+
property :description
|
23
|
+
property :displayName
|
24
|
+
property :icon
|
25
|
+
property :name
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class UserMapping
|
5
|
+
include Kartograph::DSL
|
6
|
+
|
7
|
+
kartograph do
|
8
|
+
mapping User
|
9
|
+
|
10
|
+
scoped :read do
|
11
|
+
property :created_by_user_id
|
12
|
+
property :creation_date
|
13
|
+
property :enabled
|
14
|
+
property :firstname
|
15
|
+
property :icon
|
16
|
+
property :id
|
17
|
+
property :job_title
|
18
|
+
property :last_connection
|
19
|
+
property :last_update_date
|
20
|
+
property :lastname
|
21
|
+
property :manager_id
|
22
|
+
property :title
|
23
|
+
property :userName
|
24
|
+
end
|
25
|
+
|
26
|
+
scoped :create do
|
27
|
+
property :firstname
|
28
|
+
property :icon
|
29
|
+
property :job_title
|
30
|
+
property :lastname
|
31
|
+
property :manager_id
|
32
|
+
property :password
|
33
|
+
property :password_confirm
|
34
|
+
property :title
|
35
|
+
property :userName
|
36
|
+
end
|
37
|
+
|
38
|
+
scoped :update do
|
39
|
+
property :firstname
|
40
|
+
property :icon
|
41
|
+
property :id
|
42
|
+
property :job_title
|
43
|
+
property :lastname
|
44
|
+
property :manager_id
|
45
|
+
property :password
|
46
|
+
property :password_confirm
|
47
|
+
property :title
|
48
|
+
property :userName
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Middleware
|
4
|
+
class CSRF
|
5
|
+
def initialize(app, options = {})
|
6
|
+
@app = app
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(env)
|
11
|
+
if env[:request_headers]['Cookie']
|
12
|
+
token = /X\-Bonita\-API\-Token=([a-f0-9\-]+)/.match(env[:request_headers]['Cookie'])&.captures&.first
|
13
|
+
env[:request_headers]['X-Bonita-API-Token'] = token if token
|
14
|
+
end
|
15
|
+
@app.call(env)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Bonita
|
4
|
+
class BaseModel
|
5
|
+
class << self
|
6
|
+
attr_reader :attributes
|
7
|
+
|
8
|
+
def attribute(name)
|
9
|
+
@attributes ||= []
|
10
|
+
|
11
|
+
return if @attributes.include? name
|
12
|
+
|
13
|
+
@attributes << name
|
14
|
+
send(:attr_accessor, name)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(params = {})
|
19
|
+
self.class.attributes.each do |key|
|
20
|
+
instance_variable_set("@#{key}", params[key])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def inspect
|
25
|
+
values = Hash[instance_variables.map { |name| [name, instance_variable_get(name)] }]
|
26
|
+
"<#{self.class.name} #{values}>"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Bpm
|
4
|
+
class Process < BaseModel
|
5
|
+
attribute :activationState
|
6
|
+
attribute :actorinitiatorid
|
7
|
+
attribute :configurationState
|
8
|
+
attribute :deployedBy
|
9
|
+
attribute :deploymentDate
|
10
|
+
attribute :description
|
11
|
+
attribute :displayDescription
|
12
|
+
attribute :displayName
|
13
|
+
attribute :id
|
14
|
+
attribute :last_update_date
|
15
|
+
attribute :name
|
16
|
+
attribute :version
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class Group < BaseModel
|
5
|
+
attribute :created_by_user_id
|
6
|
+
attribute :creation_date
|
7
|
+
attribute :description
|
8
|
+
attribute :displayName
|
9
|
+
attribute :icon
|
10
|
+
attribute :id
|
11
|
+
attribute :last_update_date
|
12
|
+
attribute :name
|
13
|
+
attribute :parent_group_id
|
14
|
+
attribute :parent_path
|
15
|
+
attribute :path
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class Role < BaseModel
|
5
|
+
attribute :created_by_user_id
|
6
|
+
attribute :creation_date
|
7
|
+
attribute :description
|
8
|
+
attribute :displayName
|
9
|
+
attribute :icon
|
10
|
+
attribute :id
|
11
|
+
attribute :last_update_date
|
12
|
+
attribute :name
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Bonita
|
3
|
+
module Identity
|
4
|
+
class User < BaseModel
|
5
|
+
attribute :created_by_user_id
|
6
|
+
attribute :creation_date
|
7
|
+
attribute :enabled
|
8
|
+
attribute :firstname
|
9
|
+
attribute :icon
|
10
|
+
attribute :icon
|
11
|
+
attribute :id
|
12
|
+
attribute :job_title
|
13
|
+
attribute :last_connection
|
14
|
+
attribute :last_update_date
|
15
|
+
attribute :lastname
|
16
|
+
attribute :manager_id
|
17
|
+
attribute :password
|
18
|
+
attribute :password_confirm
|
19
|
+
attribute :title
|
20
|
+
attribute :userName
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|