summaryrefslogtreecommitdiffstats
path: root/lib/ASM/DB
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ASM/DB')
-rw-r--r--lib/ASM/DB/Result/User.pm34
-rw-r--r--lib/ASM/DB/ResultSet/User.pm23
2 files changed, 57 insertions, 0 deletions
diff --git a/lib/ASM/DB/Result/User.pm b/lib/ASM/DB/Result/User.pm
index 5e5d17c..675ccba 100644
--- a/lib/ASM/DB/Result/User.pm
+++ b/lib/ASM/DB/Result/User.pm
@@ -6,6 +6,8 @@ use warnings;
use parent 'DBIx::Class::Core';
+use Authen::Passphrase::RejectAll;
+
__PACKAGE__->load_components('InflateColumn::DateTime', 'PassphraseColumn');
__PACKAGE__->table('users');
__PACKAGE__->add_columns(
@@ -30,9 +32,41 @@ __PACKAGE__->add_columns(
passphrase_check_method => 'check_password',
is_nullable => 0,
},
+ flag_secret => {
+ data_type => 'boolean',
+ is_nullable => 0,
+ default_value => 0,
+ },
+ flag_hilights => {
+ data_type => 'boolean',
+ is_nullable => 0,
+ default_value => 0,
+ },
+ flag_admin => {
+ data_type => 'boolean',
+ is_nullable => 0,
+ default_value => 0,
+ },
+ flag_plugin => {
+ data_type => 'boolean',
+ is_nullable => 0,
+ default_value => 0,
+ },
+ flag_debug => {
+ data_type => 'boolean',
+ is_nullable => 0,
+ default_value => 0,
+ },
);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->add_unique_constraint(uniq_user_name => ['name']);
+sub new {
+ my $self = shift;
+ $_[0]{passphrase} //= Authen::Passphrase::RejectAll->new;
+
+ $self->SUPER::new(@_);
+}
+
1;
diff --git a/lib/ASM/DB/ResultSet/User.pm b/lib/ASM/DB/ResultSet/User.pm
new file mode 100644
index 0000000..68c0871
--- /dev/null
+++ b/lib/ASM/DB/ResultSet/User.pm
@@ -0,0 +1,23 @@
+use utf8;
+
+package ASM::DB::ResultSet::User;
+
+use strict;
+use warnings;
+
+use parent 'DBIx::Class::ResultSet';
+use namespace::autoclean;
+
+sub by_name {
+ my ( $self, $name ) = @_;
+
+ return $self->find( { name => $name }, { key => 'uniq_user_name' } );
+}
+
+sub by_name_or_new {
+ my ( $self, $name ) = @_;
+
+ return $self->find_or_new( { name => $name }, { key => 'uniq_user_name' } );
+}
+
+1;