Class: Mxrb::Dsl::SecurityBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/mxrb/dsl/builder.rb

Instance Method Summary collapse

Constructor Details

#initializeSecurityBuilder

Returns a new instance of SecurityBuilder.



383
384
385
386
387
388
389
390
391
392
# File 'lib/mxrb/dsl/builder.rb', line 383

def initialize
  @user_roles = []
  @security_level = nil
  @admin_user_role = nil
  @demo_users_enabled = nil
  @guest_access_enabled = nil
  @guest_user_role = nil
  @sign_in_microflow = nil
  @password_policy = nil
end

Instance Method Details

#admin_user_role(name) ⇒ Object



409
410
411
# File 'lib/mxrb/dsl/builder.rb', line 409

def admin_user_role(name)
  @admin_user_role = name.to_s
end

#demo_users(enabled = true) ⇒ Object



413
414
415
# File 'lib/mxrb/dsl/builder.rb', line 413

def demo_users(enabled = true)
  @demo_users_enabled = enabled == true
end

#guest_access(enabled = true, role: nil) ⇒ Object



417
418
419
420
# File 'lib/mxrb/dsl/builder.rb', line 417

def guest_access(enabled = true, role: nil)
  @guest_access_enabled = enabled == true
  @guest_user_role = role&.to_s
end

#password_policy(**options) ⇒ Object



426
427
428
# File 'lib/mxrb/dsl/builder.rb', line 426

def password_policy(**options)
  @password_policy = options.transform_keys(&:to_sym)
end

#security_level(value) ⇒ Object

Mendix stores the project security mode as an enum-like string such as "CheckNothing" or "CheckEverything". Keep the native value explicit so export/import does not silently weaken project security.



397
398
399
# File 'lib/mxrb/dsl/builder.rb', line 397

def security_level(value)
  @security_level = value.to_s
end

#sign_in_microflow(name) ⇒ Object



422
423
424
# File 'lib/mxrb/dsl/builder.rb', line 422

def (name)
  @sign_in_microflow = name&.to_s
end

#to_hObject



430
431
432
433
434
435
436
437
438
439
440
441
# File 'lib/mxrb/dsl/builder.rb', line 430

def to_h
  {
    user_roles: @user_roles,
    security_level: @security_level,
    admin_user_role: @admin_user_role,
    demo_users_enabled: @demo_users_enabled,
    guest_access_enabled: @guest_access_enabled,
    guest_user_role: @guest_user_role,
    sign_in_microflow: @sign_in_microflow,
    password_policy: @password_policy
  }
end

#user_role(name, module_roles: [], admin: false) ⇒ Object



401
402
403
404
405
406
407
# File 'lib/mxrb/dsl/builder.rb', line 401

def user_role(name, module_roles: [], admin: false)
  @user_roles << {
    name: name.to_s,
    module_roles: Array(module_roles).map(&:to_s),
    admin: admin
  }
end