alego 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,7 @@
1
1
  require "alego/version"
2
+ require 'net/https'
3
+ require 'uri'
4
+ require 'rexml/document'
2
5
 
3
6
  module Alego
4
7
  # Your code goes here...
@@ -0,0 +1,58 @@
1
+ module AuthSecurityController
2
+
3
+ def pre_dispatch
4
+ valida_login
5
+ valida_tela
6
+ end
7
+
8
+ def set_usuario_corrente=(usuario)
9
+ @usuario_corrente = usuario
10
+ session[:usuario_id] = usuario.id
11
+ end
12
+
13
+
14
+ def logout
15
+ session[:usuario_id] = nil
16
+ reset_session
17
+ end
18
+
19
+
20
+ def valida_login
21
+ begin
22
+ if usuario_corrente
23
+ return true
24
+ else
25
+ flash[:erro]="Falha no login"
26
+ logout
27
+ return false
28
+ end
29
+ rescue
30
+ flash[:erro]="Falha no login"
31
+ logout
32
+ return false
33
+ end
34
+ end
35
+
36
+
37
+ protected
38
+ def valida_tela
39
+ nome = controller_name
40
+ usuario = nil
41
+ if user == nil
42
+ usuario ||= Usuario.find(session[:usuario_id])
43
+ else
44
+ usuario = user
45
+ end
46
+ recursos = usuario['recursos'].split(";")
47
+ recursos.each do |r|
48
+ if nome == r
49
+ return true
50
+ end
51
+ end
52
+ false
53
+ end
54
+
55
+ end
56
+
57
+
58
+
@@ -0,0 +1,59 @@
1
+ require 'net/https'
2
+ require 'uri'
3
+ require 'rexml/document'
4
+
5
+ module AuthSgu
6
+
7
+ def production(is_production = true, url = nil)
8
+ if (is_production)
9
+ @@sgu_url = "https://172.16.0.36/sgu/"
10
+ else
11
+ @@sgu_url = "https://172.16.0.26/sgu/"
12
+ end
13
+
14
+ @@sgu_url = url if (url != nil)
15
+ end
16
+
17
+
18
+
19
+ def post(login, senha, sistema)
20
+ resp = {}
21
+ url = @@sgu_url + 'validar/' + login + '/' + senha + '/' + sistema +'.xml'
22
+
23
+ begin
24
+ uri = URI.parse(url)
25
+ http = Net::HTTP.new(uri.host, uri.port)
26
+ http.use_ssl = true
27
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
28
+ request = Net::HTTP::Get.new(uri.request_uri)
29
+ response = http.request(request)
30
+ rescue
31
+
32
+ resp[:erro] = "Error: host connection fail"
33
+ end
34
+
35
+ if response != nil and response.code == "200"
36
+ xml_data = response.body
37
+ doc = REXML::Document.new(xml_data)
38
+ doc.elements.each('hash') do |ele|
39
+ begin
40
+ resp[:erro] = ele.elements['erro'].text
41
+ rescue
42
+ resp[:usu_descricao] = ele.elements['nome-user'].text
43
+ resp[:matricula] = ele.elements['matricula'].text
44
+ resp[:recursos] = ""
45
+ ele.elements.each('telas') do |e|
46
+ e.elements.each('tela') do |et|
47
+ resp[:recursos] = resp[:recursos] + et.elements['nome-tela'].text+';'
48
+ end
49
+ end
50
+ resp[:status] = response.code
51
+ end
52
+ end
53
+ else
54
+ resp[:erro] = "Error: host connection fail"
55
+ end
56
+ resp
57
+ end
58
+
59
+ end
@@ -1,3 +1,3 @@
1
1
  module Alego
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alego
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -18,12 +18,10 @@ executables: []
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
- - .gitignore
22
- - Gemfile
23
- - Rakefile
24
- - alego.gemspec
25
- - lib/alego.rb
21
+ - lib/alego/auth_security_controller.rb
22
+ - lib/alego/auth_sgu.rb
26
23
  - lib/alego/version.rb
24
+ - lib/alego.rb
27
25
  homepage: ''
28
26
  licenses: []
29
27
  post_install_message:
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
-
4
- gemspec
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require "bundler/gem_tasks"
@@ -1,20 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "alego/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "alego"
7
- s.version = Alego::VERSION
8
- s.authors = ["Maurílio Henrique dos Reis Campos"]
9
- s.email = ["mauriliohrc@gmail.com"]
10
- s.homepage = ""
11
- s.summary = %q{Alego Auth}
12
- s.description = %q{Alego Auth SGU}
13
-
14
- s.rubyforge_project = "alego"
15
-
16
- s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
- s.require_paths = ["lib"]
20
- end