49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/ayadn/authorize.rb', line 49
def unauthorize(user, options)
begin
@workers = Workers.new
if user.size != 1
@status.one_username
exit
end
user = @workers.remove_arobase_if_present(user)[0]
puts "\e[H\e[2J"
if options[:delete]
sure = @thor.yes?("Are you sure you want to unauthorize user @#{user} and delete its folders? [y/N]\n\n> ", :red)
else
sure = @thor.yes?("Are you sure you want to unauthorize user @#{user} ? [y/N]\n\n> ", :red)
end
unless sure == true
Status.new.canceled
exit
end
puts "\e[H\e[2J"
@status.say_yellow :delete, "database entry for @#{user}"
db = Amalgalite::Database.new(Dir.home + "/ayadn/accounts.sqlite")
Databases.remove_from_accounts(db, user)
if options[:delete]
@status.say_yellow :delete, "@#{user} user folders"
FileUtils.remove_dir(Dir.home + "/ayadn/#{user}")
end
@status.say_green :done, "user @#{user} has been unauthorized"
remaining = Databases.all_accounts(db)
if remaining.flatten.empty?
@status.say_info "accounts database is now empty"
else
username = remaining[0][0]
Databases.set_active_account(db, username)
@status.say_info "user @#{username} is now the active user"
end
puts "\n"
rescue Amalgalite::SQLite3::Error => e
@status.not_authorized
exit
rescue Interrupt
Status.new.canceled
exit
end
end
|