Add some utility functions
[gruntmaster-data.git] / lib / Gruntmaster / Data / Result / User.pm
CommitLineData
4ed3f8e7
MG
1use utf8;
2package Gruntmaster::Data::Result::User;
3
4# Created by DBIx::Class::Schema::Loader
5# DO NOT MODIFY THE FIRST PART OF THIS FILE
6
7=head1 NAME
8
9Gruntmaster::Data::Result::User
10
11=cut
12
13use strict;
14use warnings;
15
16use base 'DBIx::Class::Core';
17
18=head1 TABLE: C<users>
19
20=cut
21
22__PACKAGE__->table("users");
23
24=head1 ACCESSORS
25
26=head2 id
27
28 data_type: 'text'
29 is_nullable: 0
30
2fec2d56
MG
31=head2 passphrase
32
33 data_type: 'text'
9bb39921 34 is_nullable: 1
2fec2d56
MG
35
36=head2 admin
37
38 data_type: 'boolean'
39 default_value: false
40 is_nullable: 0
41
4ed3f8e7
MG
42=head2 name
43
44 data_type: 'text'
45 is_nullable: 1
46
47=head2 email
48
49 data_type: 'text'
50 is_nullable: 1
51
85d3f015
MG
52=head2 phone
53
54 data_type: 'text'
55 is_nullable: 1
56
4ed3f8e7
MG
57=head2 town
58
59 data_type: 'text'
60 is_nullable: 1
61
62=head2 university
63
64 data_type: 'text'
65 is_nullable: 1
66
67=head2 level
68
69 data_type: 'text'
70 is_nullable: 1
71
72=head2 lastjob
73
74 data_type: 'bigint'
75 is_nullable: 1
76
77=cut
78
79__PACKAGE__->add_columns(
80 "id",
81 { data_type => "text", is_nullable => 0 },
2fec2d56 82 "passphrase",
9bb39921 83 { data_type => "text", is_nullable => 1 },
2fec2d56
MG
84 "admin",
85 { data_type => "boolean", default_value => \"false", is_nullable => 0 },
4ed3f8e7
MG
86 "name",
87 { data_type => "text", is_nullable => 1 },
88 "email",
89 { data_type => "text", is_nullable => 1 },
85d3f015
MG
90 "phone",
91 { data_type => "text", is_nullable => 1 },
4ed3f8e7
MG
92 "town",
93 { data_type => "text", is_nullable => 1 },
94 "university",
95 { data_type => "text", is_nullable => 1 },
96 "level",
97 { data_type => "text", is_nullable => 1 },
98 "lastjob",
99 { data_type => "bigint", is_nullable => 1 },
100);
101
102=head1 PRIMARY KEY
103
104=over 4
105
106=item * L</id>
107
108=back
109
110=cut
111
112__PACKAGE__->set_primary_key("id");
113
114=head1 RELATIONS
115
116=head2 contests
117
118Type: has_many
119
120Related object: L<Gruntmaster::Data::Result::Contest>
121
122=cut
123
124__PACKAGE__->has_many(
125 "contests",
126 "Gruntmaster::Data::Result::Contest",
127 { "foreign.owner" => "self.id" },
128 { cascade_copy => 0, cascade_delete => 0 },
129);
130
131=head2 jobs
132
133Type: has_many
134
135Related object: L<Gruntmaster::Data::Result::Job>
136
137=cut
138
139__PACKAGE__->has_many(
140 "jobs",
141 "Gruntmaster::Data::Result::Job",
142 { "foreign.owner" => "self.id" },
143 { cascade_copy => 0, cascade_delete => 0 },
144);
145
146=head2 opens
147
148Type: has_many
149
150Related object: L<Gruntmaster::Data::Result::Open>
151
152=cut
153
154__PACKAGE__->has_many(
155 "opens",
156 "Gruntmaster::Data::Result::Open",
157 { "foreign.owner" => "self.id" },
158 { cascade_copy => 0, cascade_delete => 0 },
159);
160
161=head2 problems
162
163Type: has_many
164
165Related object: L<Gruntmaster::Data::Result::Problem>
166
167=cut
168
169__PACKAGE__->has_many(
170 "problems",
171 "Gruntmaster::Data::Result::Problem",
172 { "foreign.owner" => "self.id" },
173 { cascade_copy => 0, cascade_delete => 0 },
174);
175
176
9bb39921
MG
177# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-05-16 15:23:08
178# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Cho4zmn58Mytf2jHvgP+4g
4ed3f8e7 179
de625c9b
MG
180use Authen::Passphrase;
181use Authen::Passphrase::BlowfishCrypt;
182
183sub check_passphrase {
184 my ($self, $pw) = @_;
185 Authen::Passphrase->from_rfc2307($self->passphrase)->match($pw)
186}
187
188sub set_passphrase {
189 my ($self, $pw) = @_;
190 $self->update({passphrase => Authen::Passphrase::BlowfishCrypt->new(
191 cost => 10,
192 passphrase => $pw,
193 salt_random => 1,
194 )})->as_rfc2307;
195}
4ed3f8e7 196
4ed3f8e7 1971;
4a8747ef
MG
198
199__END__
200
de625c9b
MG
201=head1 METHODS
202
203=head2 check_passphrase(I<$passphrase>)
204
205Returns true if I<$passphrase> is the correct passphrase, false otherwise.
206
207=head2 set_passphrase(I<$passphrase>)
208
209Changes the passphrase to I<$passphrase>.
210
4a8747ef
MG
211=head1 AUTHOR
212
213Marius Gavrilescu E<lt>marius@ieval.roE<gt>
214
215=head1 COPYRIGHT AND LICENSE
216
217Copyright (C) 2014 by Marius Gavrilescu
218
219This library is free software; you can redistribute it and/or modify
220it under the same terms as Perl itself, either Perl version 5.18.1 or,
221at your option, any later version of Perl 5 you may have available.
222
223
224=cut
This page took 0.023813 seconds and 4 git commands to generate.