From b432f1930851c3b583b223d773341f5e208046a7 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 24 Jan 2013 12:47:00 +0100 Subject: Better user experience. One step setup. --- app/models/gemeinschaft_setup.rb | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'app/models') diff --git a/app/models/gemeinschaft_setup.rb b/app/models/gemeinschaft_setup.rb index 6056236..4b4dd37 100644 --- a/app/models/gemeinschaft_setup.rb +++ b/app/models/gemeinschaft_setup.rb @@ -6,6 +6,14 @@ class GemeinschaftSetup < ActiveRecord::Base belongs_to :country belongs_to :language + validates :default_company_name, + :presence => true, + :uniqueness => true + + validates :default_system_email, + :presence => true, + :uniqueness => true + # Remove the cache which was created by the heater rake task. # after_create :expire_cache -- cgit v1.2.3 From bcc26106d74a301df09e02d07572ffe90dfb429b Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 24 Jan 2013 13:23:24 +0100 Subject: Don't let the admin pull out the rug for his/her own account. --- app/models/ability.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/models') diff --git a/app/models/ability.rb b/app/models/ability.rb index b846af0..0d13dab 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -82,6 +82,10 @@ class Ability # cannot [:create, :destroy], GsParameter cannot [:create, :destroy], GuiFunction + + # An admin can not destroy his/her account + # + cannot [:destroy], User, :id => user.id else # Any user can do the following stuff. # -- cgit v1.2.3 From e024c99b6ffeb725cf73ebf8b7b55957f36772f5 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 24 Jan 2013 14:09:31 +0100 Subject: A new user becomes a member of default UserGroups. --- app/models/user.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/models') diff --git a/app/models/user.rb b/app/models/user.rb index b902b99..9e8cbc0 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -95,6 +95,8 @@ class User < ActiveRecord::Base before_destroy :destroy_or_logout_phones + after_save :become_a_member_of_default_user_groups + def destroy clean_whitelist_entries super @@ -207,4 +209,12 @@ class User < ActiveRecord::Base end end + # Normaly a new user should become a member of default user groups. + # + def become_a_member_of_default_user_groups + UserGroup.where(:id => GsParameter.get('DEFAULT_USER_GROUPS_IDS')).each do |user_group| + user_group.user_group_memberships.create(:user_id => self.id) + end + end + end -- cgit v1.2.3 From 2d6ebf19e5cea45dd714f92a64b1b81e1200a811 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Thu, 24 Jan 2013 14:45:43 +0100 Subject: Create a central docu page which gets a link in the navbar. --- app/models/user.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'app/models') diff --git a/app/models/user.rb b/app/models/user.rb index 9e8cbc0..afb3f04 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -144,6 +144,9 @@ class User < ActiveRecord::Base self.pin_hash == Digest::SHA2.hexdigest( "#{self.pin_salt}#{entered_pin}" ) end + def admin? + self.user_groups.include?(UserGroup.find(2)) + end private -- cgit v1.2.3 From e2e2fbbdc6b26e00101f5d4d1b05c0d076c817c2 Mon Sep 17 00:00:00 2001 From: Stefan Wintermeyer Date: Sat, 26 Jan 2013 16:22:52 +0100 Subject: Add a bit of AJAX to remove the just deleted row in call_history#index --- app/models/call_history.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'app/models') diff --git a/app/models/call_history.rb b/app/models/call_history.rb index 4db056a..81342bd 100644 --- a/app/models/call_history.rb +++ b/app/models/call_history.rb @@ -3,6 +3,9 @@ class CallHistory < ActiveRecord::Base belongs_to :caller_account, :polymorphic => true belongs_to :callee_account, :polymorphic => true belongs_to :auth_account, :polymorphic => true + + validates :start_stamp, + :presence => true def display_number if self.entry_type == 'dialed' @@ -78,10 +81,11 @@ class CallHistory < ActiveRecord::Base end def display_call_date(date_format, date_today_format) - if self.start_stamp.strftime('%Y%m%d') == DateTime::now.strftime('%Y%m%d') + if self.start_stamp.to_date == Date.today return self.start_stamp.strftime(date_today_format) + else + return self.start_stamp.strftime(date_format) end - return self.start_stamp.strftime(date_format) end def display_duration @@ -129,6 +133,14 @@ class CallHistory < ActiveRecord::Base end + def voicemail_message? + begin + return self.call_historyable.voicemail_messages.where(:forwarded_by => self.caller_channel_uuid).any? + rescue + return nil + end + end + def voicemail_message begin return self.call_historyable.voicemail_messages.where(:forwarded_by => self.caller_channel_uuid).first -- cgit v1.2.3 From 45af07cb093eb0202967cf0d0fc058ca58f0b782 Mon Sep 17 00:00:00 2001 From: spag Date: Sun, 27 Jan 2013 10:17:21 +0100 Subject: added gateway technology --- app/models/gateway.rb | 2 +- app/models/gateway_setting.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'app/models') diff --git a/app/models/gateway.rb b/app/models/gateway.rb index 3e791a6..a8df41f 100644 --- a/app/models/gateway.rb +++ b/app/models/gateway.rb @@ -1,5 +1,5 @@ class Gateway < ActiveRecord::Base - TECHNOLOGIES = ['sip'] + TECHNOLOGIES = ['sip', 'xmpp'] attr_accessible :name, :technology, :inbound, :outbound, :description diff --git a/app/models/gateway_setting.rb b/app/models/gateway_setting.rb index c01f0a8..e3eaadb 100644 --- a/app/models/gateway_setting.rb +++ b/app/models/gateway_setting.rb @@ -11,6 +11,16 @@ class GatewaySetting < ActiveRecord::Base 'auth_pattern' => 'String', 'number_source' => 'String', }, + 'xmpp' => { + 'server' => 'String', + 'login' => 'String', + 'password' => 'String', + 'inbound_number' => 'String', + 'auth_source' => 'String', + 'auth_pattern' => 'String', + 'number_source' => 'String', + 'destination_domain' => 'String', + }, } attr_accessible :gateway_id, :name, :value, :class_type, :description -- cgit v1.2.3 From 29ac1a26b5d78c3d8570928df73610de0a361297 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 28 Jan 2013 09:26:47 +0100 Subject: render route endpoint --- app/models/call_route.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'app/models') diff --git a/app/models/call_route.rb b/app/models/call_route.rb index 28120c1..b4496ab 100644 --- a/app/models/call_route.rb +++ b/app/models/call_route.rb @@ -238,4 +238,15 @@ class CallRoute < ActiveRecord::Base end end end + + def endpoint + if self.endpoint_id.to_i > 0 + begin + return self.endpoint_type.camelize.constantize.where(:id => self.endpoint_id.to_i).first + rescue + return nil + end + end + end + end -- cgit v1.2.3 From 7f751576ae36f387bafa63e900fa21353a2ce3fb Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 28 Jan 2013 10:11:39 +0100 Subject: sip_registration model added --- app/models/sip_registration.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/models/sip_registration.rb (limited to 'app/models') diff --git a/app/models/sip_registration.rb b/app/models/sip_registration.rb new file mode 100644 index 0000000..b668301 --- /dev/null +++ b/app/models/sip_registration.rb @@ -0,0 +1,21 @@ +class SipRegistration < ActiveRecord::Base + # Makes sure that this is a readonly model. + def readonly? + return true + end + + # Prevent objects from being destroyed + def before_destroy + raise ActiveRecord::ReadOnlyRecord + end + + # Prevent objects from being deleted + def self.delete_all + raise ActiveRecord::ReadOnlyRecord + end + + # Prevent objects from being deleted + def delete + raise ActiveRecord::ReadOnlyRecord + end +end -- cgit v1.2.3 From 3e66e066c2f19a8b27233dff1abdf3908debae36 Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 28 Jan 2013 10:12:40 +0100 Subject: use sip_registration in sip_views --- app/models/sip_account.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/models') diff --git a/app/models/sip_account.rb b/app/models/sip_account.rb index d35f9b4..444eb12 100644 --- a/app/models/sip_account.rb +++ b/app/models/sip_account.rb @@ -133,7 +133,7 @@ class SipAccount < ActiveRecord::Base end def registration - return FreeswitchRegistration.where(:reg_user => self.auth_name).first + return SipRegistration.where(:sip_user => self.auth_name).first end def call( phone_number ) -- cgit v1.2.3 From 5d17b4b7e41a62d2c7f1dabae8ad7376211e921a Mon Sep 17 00:00:00 2001 From: spag Date: Mon, 28 Jan 2013 11:55:45 +0100 Subject: thumbnails fixed --- app/models/fax_document.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app/models') diff --git a/app/models/fax_document.rb b/app/models/fax_document.rb index 080bdaa..be689e2 100644 --- a/app/models/fax_document.rb +++ b/app/models/fax_document.rb @@ -52,7 +52,6 @@ class FaxDocument < ActiveRecord::Base name end - private def render_thumbnails directory = "/tmp/GS-#{GsParameter.get('GEMEINSCHAFT_VERSION')}/fax_thumbnails/#{self.id}" system('mkdir -p ' + directory) @@ -66,7 +65,8 @@ class FaxDocument < ActiveRecord::Base system("rm -rf #{directory}") self.update_attributes(:document_total_pages => number_of_thumbnails) if self.document_total_pages.nil? end - + + private def convert_pdf_to_tiff page_size_a4 = '595 842' page_size_command = "<< /Policies << /PageSize 3 >> /InputAttributes currentpagedevice /InputAttributes get dup { pop 1 index exch undef } forall dup 0 << /PageSize [ #{page_size_a4} ] >> put >> setpagedevice" -- cgit v1.2.3