ig3tool 0.3.0 → 0.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.
- data/bin/ig3tool +1 -1
- data/lib/glade/sales.glade +84 -84
- data/lib/ui/{internewindow.rb → OLD_internewindow.rb} +0 -0
- data/lib/ui/{memberswindow.rb → OLD_memberswindow.rb} +0 -0
- data/lib/ui/{productswindow.rb → OLD_productswindow.rb} +0 -0
- data/lib/ui/gladehelper.rb +3 -2
- data/lib/ui/{newinterne.rb → interne.rb} +2 -1
- data/lib/ui/peoplewindow.rb +1 -1
- data/lib/ui/printingwindow.rb +6 -6
- data/lib/ui/protjes.rb +6 -0
- data/lib/ui/saleswindow.rb +72 -25
- data/lib/ui/toolwindow.rb +3 -3
- metadata +70 -95
- data/lib/actions/bib.rb +0 -295
- data/lib/actions/bitching.rb +0 -19
- data/lib/actions/cultuur.rb +0 -3
- data/lib/actions/interne.rb +0 -98
- data/lib/actions/kaching.rb +0 -90
- data/lib/actions/people.rb +0 -178
- data/lib/actions/printing.rb +0 -125
- data/lib/actions/product.rb +0 -154
- data/lib/bib.rb +0 -94
- data/lib/billing.rb +0 -112
- data/lib/bitching.rb +0 -49
- data/lib/config.rb +0 -19
- data/lib/horrible_hack.rb +0 -15
- data/lib/interne.rb +0 -111
- data/lib/ldap.rb +0 -104
- data/lib/log.rb +0 -25
- data/lib/membership.rb +0 -32
- data/lib/mymd5.rb +0 -95
- data/lib/people.rb +0 -143
- data/lib/printing.rb +0 -238
- data/lib/request.rb +0 -14
- data/lib/sales.rb +0 -158
- data/lib/utils.rb +0 -106
- data/lib/web.rb +0 -98
data/lib/actions/bitching.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'bitching'
|
2
|
-
|
3
|
-
module Ig3tool
|
4
|
-
class Actions
|
5
|
-
|
6
|
-
def self.wannabe!(params)
|
7
|
-
username = params["username"] or raise Needed, "username"
|
8
|
-
password = params["password"] or raise Needed, "password"
|
9
|
-
Bitch.wannabe(username, password)
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.register!(params)
|
13
|
-
username = params["username"] or raise Needed, "username"
|
14
|
-
password = params["password"] or raise Needed, "password"
|
15
|
-
Bitch.wannabe(username, password)
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
data/lib/actions/cultuur.rb
DELETED
data/lib/actions/interne.rb
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
require 'people'
|
2
|
-
require 'interne'
|
3
|
-
|
4
|
-
module Ig3tool
|
5
|
-
class Actions
|
6
|
-
|
7
|
-
def self.internes(params)
|
8
|
-
internes = {}
|
9
|
-
Interne.find(:all) \
|
10
|
-
.sort { |a,b| a.person.username <=> b.person.username } \
|
11
|
-
.each { |i| internes[i.person.username] = i.saldo }
|
12
|
-
internes
|
13
|
-
end
|
14
|
-
|
15
|
-
# Verwacht een 'username' in de URL
|
16
|
-
# Geeft saldo terug
|
17
|
-
def self.interne(params)
|
18
|
-
raise NeedDebugger unless params[:given_uri] == 1
|
19
|
-
name = params[:from_uri].first
|
20
|
-
_interne(name).saldo
|
21
|
-
end
|
22
|
-
|
23
|
-
# Toon de InterneTransactions
|
24
|
-
# Geen debugger-username -> Alles
|
25
|
-
# Debugger-username -> Donor + Recipient
|
26
|
-
def self.interne_log(params)
|
27
|
-
# XXX TODO
|
28
|
-
# Change from LogEntry to InterneTransaction
|
29
|
-
# MAAR:
|
30
|
-
# eerst nog zorgen dat alle transacties ivm interne (dus ook scribblen enzo) ook weergegeven worden
|
31
|
-
# voorlopig dus via LogEntry zodat je meer info hebt
|
32
|
-
name, max_lines = params[:from_uri]
|
33
|
-
max_lines = 500 if max_lines.nil?
|
34
|
-
|
35
|
-
if name
|
36
|
-
name = "%#{name}%"
|
37
|
-
LogEntry.find(:all, :conditions => ["system = 'interne' and
|
38
|
-
subsystem = 'transfer' and
|
39
|
-
message like ?", name],
|
40
|
-
:order => "timestamp DESC",
|
41
|
-
:limit => max_lines)
|
42
|
-
else
|
43
|
-
LogEntry.find(:all, :order => "timestamp DESC",
|
44
|
-
:limit => max_lines)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
# Verwacht in 'from','to' usernames
|
49
|
-
# Verwacht in 'saldo' een getal
|
50
|
-
# Geeft saldo terug.
|
51
|
-
def self.interne_transfer!(params)
|
52
|
-
from = params['from'] or raise Needed, "source interne"
|
53
|
-
to = params['to'] or raise Needed, "target interne"
|
54
|
-
amount = params['amount'].to_i or raise Needed, "amount"
|
55
|
-
|
56
|
-
if amount < 0 then
|
57
|
-
amount *= -1
|
58
|
-
from, to = to, from
|
59
|
-
end
|
60
|
-
|
61
|
-
raise IG3Error, "Having fun playing with yourself?" if from == to
|
62
|
-
raise IG3Error, "No sense in transferring 0 credits.." if amount == 0
|
63
|
-
|
64
|
-
case
|
65
|
-
when from == "kas" # geld UIT de kassa
|
66
|
-
Logger::log :interne, :withdraw, '%s withdrew %.2f from kas' % [to, amount.to_f / 100]
|
67
|
-
_with_interne(to) { |s| s - amount }
|
68
|
-
|
69
|
-
when to == "kas" # geld IN de kassa
|
70
|
-
Logger::log :interne, :deposit, '%s deposited %.2f in kas' % [from, amount.to_f / 100]
|
71
|
-
_with_interne(from) { |s| s + amount }
|
72
|
-
|
73
|
-
else
|
74
|
-
Logger::log :interne, :transfer, '%s transferred %.2f to %s' % [from, amount.to_f / 100, to]
|
75
|
-
Interne.transaction do
|
76
|
-
_with_interne(to) { |s| s + amount }
|
77
|
-
_with_interne(from) { |s| s - amount }
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
def self._interne(name)
|
85
|
-
d = Person.find(name)
|
86
|
-
raise NotADebugger, name.to_s unless d.debugger?
|
87
|
-
d.interne
|
88
|
-
end
|
89
|
-
|
90
|
-
def self._with_interne(name)
|
91
|
-
i = _interne(name)
|
92
|
-
i.saldo = yield i.saldo
|
93
|
-
i.save
|
94
|
-
i.saldo
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
end
|
data/lib/actions/kaching.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'sales'
|
2
|
-
require 'people'
|
3
|
-
require 'interne'
|
4
|
-
|
5
|
-
module Ig3tool
|
6
|
-
class Actions
|
7
|
-
|
8
|
-
# This one's for you, joris :P
|
9
|
-
def self.kaching_cola(params)
|
10
|
-
scribble(params.update({"items" => {"5449000000996" => 1}}))
|
11
|
-
end
|
12
|
-
|
13
|
-
# Verwacht een array van [barcode,aantal] in 'items'
|
14
|
-
# Verwacht een username in 'debugger'
|
15
|
-
# Geeft het nieuwe saldo terug
|
16
|
-
def self.scribble!(params)
|
17
|
-
name = params['debugger'] or raise Needed, "debugger"
|
18
|
-
|
19
|
-
interne = _interne(name) or raise NotADebugger, name
|
20
|
-
Product.transaction do
|
21
|
-
_kaching_log :scribble, name, params['items']
|
22
|
-
total = _kaching(params['items'], "debugger")
|
23
|
-
interne.saldo -= total
|
24
|
-
interne.save!
|
25
|
-
total
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
# Verwacht een hash van barcode => aantal in 'items'
|
30
|
-
# Optioneel een status in 'status'
|
31
|
-
# Geeft kost terug.
|
32
|
-
def self.kaching!(params)
|
33
|
-
Product.transaction do
|
34
|
-
total = _kaching(params['items'], params['status'] || "plebs")
|
35
|
-
_kaching_log :kaching, params['debugger'], params['items']
|
36
|
-
total
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# Automaat bijvullen. 'items' zoals kaching, en 'debugger'
|
41
|
-
def self.product_restock!(params)
|
42
|
-
debugger = params['debugger']
|
43
|
-
items = params['items']
|
44
|
-
|
45
|
-
Product.transaction do
|
46
|
-
total = _kaching(items, "plebs")
|
47
|
-
_kaching_log(:restock, debugger, items)
|
48
|
-
total
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
|
54
|
-
# Verwacht een hash van barcode => aantal en een status
|
55
|
-
# Past de stock aan, en geeft de kost terug.
|
56
|
-
def self._kaching(items, status)
|
57
|
-
cost = 0
|
58
|
-
raise Needed, "items" if items.nil? or items.empty?
|
59
|
-
Product.transaction do
|
60
|
-
items.each do |barcode, amount|
|
61
|
-
p = Product.find(barcode)
|
62
|
-
p.decrement_stock(amount)
|
63
|
-
cost += p.price(status, amount)
|
64
|
-
end
|
65
|
-
|
66
|
-
cost
|
67
|
-
end
|
68
|
-
rescue ActiveRecord::RecordNotFound => e
|
69
|
-
raise ProductNotFound, e.message[/ID=(.*)/]
|
70
|
-
end
|
71
|
-
|
72
|
-
def self._kaching_log(action, naam, items)
|
73
|
-
Product.transaction do
|
74
|
-
items.each do |barcode, amount|
|
75
|
-
p = Product.find(barcode)
|
76
|
-
raise IG3Error, "You did not enter a correct amount!" unless !amount.nil? and amount.integer? and amount > 0
|
77
|
-
action_lookup = { :kaching => "sold",
|
78
|
-
:scribble => "scribbled",
|
79
|
-
:restock => "restocked automaat with" }
|
80
|
-
action_str = action_lookup[action] or raise NotFound, "action"
|
81
|
-
Logger::log :sales, action, "%s %s %d %s" %
|
82
|
-
[ naam, action_str, amount, p.name ]
|
83
|
-
end
|
84
|
-
end
|
85
|
-
rescue ActiveRecord::RecordNotFound => e
|
86
|
-
raise ProductNotFound, e.message[/ID=(.*)/]
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
90
|
-
end
|
data/lib/actions/people.rb
DELETED
@@ -1,178 +0,0 @@
|
|
1
|
-
module Ig3tool
|
2
|
-
class Actions
|
3
|
-
|
4
|
-
STATUSSEN = { 0 => "non-member", 1 => "member", 2 => "honorary member", 3 => "debugger", 4 => "ex-debugger"}
|
5
|
-
|
6
|
-
# Methods om alle mensen op te vragen
|
7
|
-
singleton = class << self; self; end
|
8
|
-
%w(everybody nonmembers honorarymembers members debuggers).each do |k|
|
9
|
-
body = Proc.new do |params|
|
10
|
-
Person.send(k.to_sym)
|
11
|
-
end
|
12
|
-
|
13
|
-
singleton.class_eval { define_method "person_#{k}", body}
|
14
|
-
end
|
15
|
-
|
16
|
-
# Zoekt persons op adhv attributes
|
17
|
-
# Verwacht minstens 1 key => value pair, kan meerdere mensen teruggeven.
|
18
|
-
# Mogelijke keys: username, email, first_name, last_name, rolnr, address, phone, gsm
|
19
|
-
def self.person_lookup(params)
|
20
|
-
raise Needed, "At least one search value" if params[:given_uri] < 1
|
21
|
-
raise Needed, "Even number of search values" if params[:given_uri] % 2 == 1
|
22
|
-
|
23
|
-
keys = params[:from_uri].to_h
|
24
|
-
status = keys.delete 'status'
|
25
|
-
valid_keys = %w(username email first_name last_name rolnr address phone gsm)
|
26
|
-
res = Person.hash_lookup(keys, valid_keys)
|
27
|
-
|
28
|
-
if status
|
29
|
-
return res.select {|x| x.send "#{status}?".to_sym }
|
30
|
-
else
|
31
|
-
return res
|
32
|
-
end
|
33
|
-
rescue RuntimeError => e
|
34
|
-
raise IG3Error, e.message
|
35
|
-
end
|
36
|
-
|
37
|
-
# Geeft de memberships van een persoon terug, gesorteerd op datum
|
38
|
-
# Verwacht een username.
|
39
|
-
def self.person_memberships(params)
|
40
|
-
raise Needed, "username" if params[:given_uri] != 1
|
41
|
-
Person.find(params[:from_uri].first).memberships.sort { |a,b| b.year <=> a.year }
|
42
|
-
end
|
43
|
-
|
44
|
-
# Returnt een persoon adhv een membership barcode
|
45
|
-
def self.person_member(params)
|
46
|
-
raise Needed, "memberid" if params[:given_uri] != 1
|
47
|
-
memberid = params[:from_uri].first
|
48
|
-
member = Membership.find_by_barcode(memberid)
|
49
|
-
raise NotAMember if member.nil?
|
50
|
-
Person.find(member.username) # Zoek het member, en return de persoon
|
51
|
-
end
|
52
|
-
|
53
|
-
# Verwijdert een member (indien mogelijk -> Geen openstaande leningen/niet-0-internes/...)
|
54
|
-
def self.person_remove!(params)
|
55
|
-
username = params["username"] or raise Needed, "username"
|
56
|
-
|
57
|
-
p = Person.find username
|
58
|
-
|
59
|
-
# Controleer Interne
|
60
|
-
i = p.interne
|
61
|
-
raise SaldoNotZero, "Debugger: saldo not zero!" if !i.nil? and i.saldo != 0
|
62
|
-
|
63
|
-
# Controleer leningen
|
64
|
-
p.memberships.each do |m|
|
65
|
-
unless m.nil?
|
66
|
-
loans = BibLoan.find_by_member_id m.id
|
67
|
-
raise StillHaveLoans, "Member: outstanding loans" unless loans.nil? or loans.empty?
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
begin
|
72
|
-
p.destroy
|
73
|
-
rescue ActiveRecord::RecordNotFound
|
74
|
-
raise NotFound, "Person"
|
75
|
-
else
|
76
|
-
:ok
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# Returnt alle mogelijk statussen
|
81
|
-
def self.person_statussen(params)
|
82
|
-
STATUSSEN # Return de Hash
|
83
|
-
end
|
84
|
-
|
85
|
-
# Voegt een persoon toe
|
86
|
-
def self.person_add!(params)
|
87
|
-
p = Person.new
|
88
|
-
p.username = params['username'] or raise Needed, "Username"
|
89
|
-
p.email = params['email'] or raise Needed, "Email"
|
90
|
-
p.first_name = params['first_name'] or raise Needed, "First_name"
|
91
|
-
p.last_name = params['last_name'] or raise Needed, "Last_name"
|
92
|
-
p.rolnr = params['rolnr']
|
93
|
-
p.address = params['address']
|
94
|
-
p.phone = params['phone']
|
95
|
-
p.gsm = params['gsm']
|
96
|
-
|
97
|
-
status = params['status'] || "non-member"
|
98
|
-
memberid = params['memberid']
|
99
|
-
if status != "non-member"
|
100
|
-
m = Membership.new
|
101
|
-
m.barcode = memberid
|
102
|
-
m.username = p.username
|
103
|
-
m.status = status
|
104
|
-
m.year = Time.werkjaar
|
105
|
-
end
|
106
|
-
|
107
|
-
pu = PrintUser.new
|
108
|
-
pu.saldo = 0
|
109
|
-
|
110
|
-
Person.transaction do
|
111
|
-
# Set username as latest because it calls save!
|
112
|
-
p.save!
|
113
|
-
pu.username = p.username
|
114
|
-
pu.save!
|
115
|
-
m.save! if status != "non-member"
|
116
|
-
|
117
|
-
pu.add_credit(200) if status == "member"
|
118
|
-
"OK"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
# Update een persoon (adhv een id)
|
123
|
-
def self.person_update!(params)
|
124
|
-
raise Needed, "Username" unless params['username']
|
125
|
-
p = Person.find_by_username(params['username'])
|
126
|
-
raise NotFound if p.nil?
|
127
|
-
p.email = params['email'] or raise Needed, "Email"
|
128
|
-
p.first_name = params['first_name'] or raise Needed, "First_name"
|
129
|
-
p.last_name = params['last_name'] or raise Needed, "Last_name"
|
130
|
-
p.rolnr = params['rolnr']
|
131
|
-
p.address = params['address']
|
132
|
-
p.phone = params['phone']
|
133
|
-
p.gsm = params['gsm']
|
134
|
-
p.save!
|
135
|
-
end
|
136
|
-
|
137
|
-
def self.person_isdebugger(params)
|
138
|
-
raise Needed, "Username" unless params[:from_uri].size > 0
|
139
|
-
p = Person.find_by_username(params[:from_uri].first)
|
140
|
-
raise NotFound if p.nil?
|
141
|
-
p.debugger?
|
142
|
-
end
|
143
|
-
|
144
|
-
def self.person_status(params)
|
145
|
-
raise Needed, "Username" unless params[:from_uri].size > 0
|
146
|
-
p = Person.find_by_username(params[:from_uri].first)
|
147
|
-
raise NotFound if p.nil?
|
148
|
-
if p.debugger?
|
149
|
-
"debugger"
|
150
|
-
elsif p.member?
|
151
|
-
"member"
|
152
|
-
else
|
153
|
-
"non-member"
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
def self.person_bugger!(params)
|
158
|
-
raise Needed, "Username" unless params['username']
|
159
|
-
p = Person.find_by_username(params['username'])
|
160
|
-
raise NotFound if p.nil?
|
161
|
-
raise NotAMember unless p.member?
|
162
|
-
raise IG3Error, "already a debugger" if p.debugger?
|
163
|
-
|
164
|
-
p.bugger!
|
165
|
-
"OK"
|
166
|
-
end
|
167
|
-
|
168
|
-
def self.person_unbugger!(params)
|
169
|
-
raise Needed, "Username" unless params['username']
|
170
|
-
p = Person.find_by_username(params['username'])
|
171
|
-
raise NotFound if p.nil?
|
172
|
-
raise NotADebugger unless p.debugger?
|
173
|
-
|
174
|
-
p.unbugger!
|
175
|
-
"OK"
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
data/lib/actions/printing.rb
DELETED
@@ -1,125 +0,0 @@
|
|
1
|
-
require 'people'
|
2
|
-
require 'interne'
|
3
|
-
require 'printing'
|
4
|
-
|
5
|
-
module Ig3tool
|
6
|
-
class Actions
|
7
|
-
|
8
|
-
def self.print_users(params)
|
9
|
-
PrintUser.find(:all, :order => "username")
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.print_debuggers(params)
|
13
|
-
users = PrintUser.find(:all, :order => "username")
|
14
|
-
users.select{|user| user.debugger?}
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.print_logs(params)
|
18
|
-
max_lines = (params[:given_uri] < 1 ? 50 : params[:given_uri].first)
|
19
|
-
PrintTransaction.find(:all, :limit => max_lines, :order => "time DESC")
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.print_user(params)
|
23
|
-
raise Needed, "username or alias" if params[:given_uri] < 1
|
24
|
-
username = params[:from_uri].first
|
25
|
-
PrintUser.lookup(username)
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.print_remove!(params)
|
29
|
-
username = params["username"] or raise Needed, "username"
|
30
|
-
PrintUser.remove(username)
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.print_addcredit!(params)
|
34
|
-
username = params["username"] or raise Needed, "username"
|
35
|
-
amount = params["amount"] or raise Needed, "amount"
|
36
|
-
pu = PrintUser.lookup(username) or raise NotFound, "username"
|
37
|
-
pu.add_credit(amount)
|
38
|
-
pu
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.print_errortest(params)
|
42
|
-
PrintUser.errortest
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.print_update!(params)
|
46
|
-
username = params["username"] or raise Needed, "username"
|
47
|
-
firstname = params["firstname"]
|
48
|
-
lastname = params["lastname"]
|
49
|
-
email = params["email"]
|
50
|
-
raise Needed, "at least one of: username, firstname, lastname" if lastname.nil? && firstname.nil? && email.nil?
|
51
|
-
amount = params["amount"] || 0
|
52
|
-
begin
|
53
|
-
p = Person.find(username)
|
54
|
-
rescue
|
55
|
-
p = Person.new
|
56
|
-
p.username = username
|
57
|
-
raise Needed, "username, firstname and lastname" if lastname.nil? && firstname.nil? && email.nil?
|
58
|
-
end
|
59
|
-
p.first_name = firstname unless firstname.nil?
|
60
|
-
p.last_name = lastname unless lastname.nil?
|
61
|
-
p.email = email unless email.nil?
|
62
|
-
p.save!
|
63
|
-
begin
|
64
|
-
pu = PrintUser.lookup(username)
|
65
|
-
rescue NotFound => err
|
66
|
-
pu = PrintUser.new
|
67
|
-
pu.username = username
|
68
|
-
pu.save!
|
69
|
-
end
|
70
|
-
pu.add_credit(amount) if amount.to_i.to_b
|
71
|
-
pu
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.print_refund!(params)
|
75
|
-
logid = params["logid"] or raise Needed, "logid"
|
76
|
-
begin
|
77
|
-
transaction = PrintTransaction.find(logid)
|
78
|
-
transaction.refund
|
79
|
-
rescue
|
80
|
-
raise TransactionNotFound, "this log id is not valid"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
def self.print_print!(params)
|
85
|
-
username = params["username"] or raise Needed, "username"
|
86
|
-
job = params["job"] or raise Needed, "job"
|
87
|
-
pages = params["pages"] or raise Needed, "pages"
|
88
|
-
copies = params["copies"] or raise Needed, "copies"
|
89
|
-
host = params["host"] or raise Needed, "host"
|
90
|
-
amount = params["amount"] or raise Needed, "amount"
|
91
|
-
queue = params["queue"] or raise Needed, "queue"
|
92
|
-
message = params["message"] || ""
|
93
|
-
pu = PrintUser.lookup(username)
|
94
|
-
pu.print(job, pages, copies, host, amount, queue, message)
|
95
|
-
end
|
96
|
-
|
97
|
-
def self.print_addalias!(params)
|
98
|
-
username = params["username"] or raise Needed, "username"
|
99
|
-
nwalias = params["alias"] or raise Needed, "alias"
|
100
|
-
pu = PrintUser.find(username) # dit is eigenlijk overkill, lekker!
|
101
|
-
pa = PrintAlias.new
|
102
|
-
pa.username = username
|
103
|
-
pa.alias = nwalias
|
104
|
-
pa.save!
|
105
|
-
end
|
106
|
-
|
107
|
-
def self.print_removealias!(params)
|
108
|
-
username = params["username"] or raise Needed, "username"
|
109
|
-
a = params["alias"] or raise Needed, "alias"
|
110
|
-
pa = PrintAlias.find(a)
|
111
|
-
if pa.print_user.username == username
|
112
|
-
pa.destroy
|
113
|
-
else
|
114
|
-
raise NotFound, "wrong username"
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def self.print_removealiases!(params)
|
119
|
-
username = params["username"] or raise Needed, "username"
|
120
|
-
pu = PrintUser.lookup(username).remove_aliases
|
121
|
-
pu
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|
125
|
-
end
|