From 566a62e6af4ab87afb23f5ce86d4c37c8a56d4eb Mon Sep 17 00:00:00 2001 From: JT Smith Date: Wed, 19 Jun 2002 00:59:01 +0000 Subject: [PATCH] Adding karma. --- docs/upgrades/upgrade_4.0.3-4.1.0.sql | 2 +- lib/WebGUI/Operation/Group.pm | 5 ++++- lib/WebGUI/Operation/User.pm | 1 + lib/WebGUI/User.pm | 29 +++++++++++++++++++-------- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/docs/upgrades/upgrade_4.0.3-4.1.0.sql b/docs/upgrades/upgrade_4.0.3-4.1.0.sql index 60a57abb9..beef7bb23 100644 --- a/docs/upgrades/upgrade_4.0.3-4.1.0.sql +++ b/docs/upgrades/upgrade_4.0.3-4.1.0.sql @@ -1,6 +1,6 @@ insert into webguiVersion values ('4.1.0','upgrade',unix_timestamp()); alter table users add column karma int not null default 0; -alter table groups add column karmaThreshold int not null default 99999999999; +alter table groups add column karmaThreshold int not null default 1000000000; create table karmaLog ( userId int not null, amount int not null default 1, diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm index e9cd02ccf..226553497 100644 --- a/lib/WebGUI/Operation/Group.pm +++ b/lib/WebGUI/Operation/Group.pm @@ -68,6 +68,7 @@ sub www_editGroup { if (WebGUI::Privilege::isInGroup(3)) { if ($session{form}{gid} eq "new") { $group{expireAfter} = 314496000; + $group{karmaThreshold} = 1000000000; } else { %group = WebGUI::SQL->quickHash("select * from groups where groupId=$session{form}{gid}"); } @@ -80,6 +81,7 @@ sub www_editGroup { $f->text("groupName",WebGUI::International::get(84),$group{groupName}); $f->textarea("description",WebGUI::International::get(85),$group{description}); $f->integer("expireAfter",WebGUI::International::get(367),$group{expireAfter}); + $f->integer("karmaThreshold",WebGUI::International::get(538),$group{karmaThreshold}); $f->submit; $output .= $f->print; unless ($session{form}{gid} eq "new") { @@ -116,7 +118,8 @@ sub www_editGroupSave { WebGUI::SQL->write("insert into groups (groupId) values ($session{form}{gid})"); } WebGUI::SQL->write("update groups set groupName=".quote($session{form}{groupName}).", - description=".quote($session{form}{description}).", expireAfter='$session{form}{expireAfter}' + description=".quote($session{form}{description}).", expireAfter='$session{form}{expireAfter}', + karmaThreshold='$session{form}{karmaThreshold}' where groupId=".$session{form}{gid}); return www_listGroups(); } else { diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index 8466a28da..2504c50ba 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -202,6 +202,7 @@ sub www_editUser { $f->hidden("op","editUserSave"); $f->hidden("uid",$session{form}{uid}); $f->readOnly($session{form}{uid},WebGUI::International::get(378)); + $f->readOnly($u->karma,WebGUI::International::get(537)); $f->readOnly(epochToHuman($u->dateCreated,"%z"),WebGUI::International::get(453)); $f->readOnly(epochToHuman($u->lastUpdated,"%z"),WebGUI::International::get(454)); $f->text("username",WebGUI::International::get(50),$u->username); diff --git a/lib/WebGUI/User.pm b/lib/WebGUI/User.pm index 1100c4f00..e11452006 100644 --- a/lib/WebGUI/User.pm +++ b/lib/WebGUI/User.pm @@ -30,14 +30,15 @@ use WebGUI::URL; use WebGUI::User; $u = WebGUI::User->new(3); or $f = WebGUI::User->new("new"); - $authMethod = $u->authMethod("WebGUI"); - $connectDN = $u->authMethod("cn=Jon Doe"); - $dateCreated = $u->dateCreated; - $identifier = $u->identifier("somepassword"); - $lastUpdated = $u->lastUpdated; - $ldapURL = $u->ldapURL("ldap://ldap.mycompany.com:389/o=MyCompany"); - $languagePreference = $u->profileField("language","English"); - $username = $u->username("jonboy"); + $authMethod = $u->authMethod("WebGUI"); + $connectDN = $u->authMethod("cn=Jon Doe"); + $dateCreated = $u->dateCreated; + $identifier = $u->identifier("somepassword"); + $karma = $u->karma; + $lastUpdated = $u->lastUpdated; + $ldapURL = $u->ldapURL("ldap://ldap.mycompany.com:389/o=MyCompany"); + $languagePreference = $u->profileField("language","English"); + $username = $u->username("jonboy"); $u->addToGroups(\@arr); $u->deleteFromGroups(\@arr); @@ -213,6 +214,18 @@ sub identifier { #------------------------------------------------------------------- +=head2 karma ( ) + + Returns the current level of karma this user has earned. + +=cut + +sub karma { + return $_[0]->{_user}{karma}; +} + +#------------------------------------------------------------------- + =head2 lastUpdated ( ) Returns the epoch for when this user was last modified.