Ignore:
Timestamp:
06/28/16 11:44:21 (8 years ago)
Author:
nanardon
Message:

Add status attribute to user object

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/bin/la-sql-upgrade.in

    r1737 r1796  
    112112        sql => [ 
    113113            q{ 
    114             CREATE OR REPLACE VIEW address_attributes AS  
     114            CREATE OR REPLACE VIEW address_attributes AS 
    115115            ( ( SELECT address."user" AS value, 'user' AS attr, address.rev AS attr_key, address.ikey AS okey 
    116116            FROM address 
    117             UNION ALL  
     117            UNION ALL 
    118118            SELECT address.name AS value, 'name' AS attr, address.rev AS attr_key, address.ikey AS okey 
    119119            FROM address ) 
     
    124124            SELECT '1' AS value, 'active' AS attr, address.rev AS attr_key, address.ikey AS okey 
    125125            FROM "user" JOIN address ON "user".name = address."user" 
    126             WHERE "user".exported AND address.exported and  
     126            WHERE "user".exported AND address.exported and 
    127127            ("user".expire IS NULL or "user".expire > now()) 
    128128            } 
     
    523523        sql => [ 
    524524            q{ 
    525             CREATE OR REPLACE VIEW user_attributes AS  
     525            CREATE OR REPLACE VIEW user_attributes AS 
    526526            (        (        (        (        (        (        (        (        (        (        ( 
    527527            SELECT "user".uidnumber::text AS value, 'uidnumber' AS attr, "user".rev AS attr_key, "user".ikey AS okey FROM "user" 
    528             UNION ALL  
     528            UNION ALL 
    529529            SELECT "user".gidnumber::text AS value, 'gidnumber' AS attr, "user".rev AS attr_key, "user".ikey AS okey FROM "user") 
    530             UNION ALL  
     530            UNION ALL 
    531531            SELECT "user".name AS value, 'name' AS attr, "user".rev AS attr_key, "user".ikey AS okey FROM "user") 
    532             UNION ALL  
     532            UNION ALL 
    533533            SELECT "user".expire::text AS value, 'expire' AS attr, "user".rev AS attr_key, "user".ikey AS okey FROM "user" 
    534534            WHERE "user".expire IS NOT NULL) 
    535             UNION ALL  
     535            UNION ALL 
    536536            SELECT '1'::text AS value, 'exported' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    537537            FROM "user" 
    538538            WHERE "user".exported = true) 
    539             UNION ALL  
     539            UNION ALL 
    540540            SELECT address_attributes_site.value, 'allsite' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    541541            FROM "user" 
     
    543543            JOIN address_attributes_site ON address_attributes_site.okey = address.ikey 
    544544            WHERE address_attributes_site.attr = 'site'::text AND address.exported = true) 
    545             UNION ALL  
     545            UNION ALL 
    546546            SELECT "group".name AS value, 'memberOf' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    547547            FROM "user" 
     
    549549            JOIN "group" ON group_attributes.okey = "group".ikey 
    550550            WHERE group_attributes.attr = 'memberUID'::text) 
    551             UNION ALL  
     551            UNION ALL 
    552552            SELECT user_attributes.value, user_attributes.attr, user_attributes.attr_key, user_attributes.okey 
    553553            FROM user_attributes_base user_attributes) 
    554             UNION ALL  
     554            UNION ALL 
    555555            SELECT "group".name AS value, 'departments' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    556556            FROM "group" 
     
    559559            JOIN "user" ON "user".name = group_attributes_users.value 
    560560            WHERE group_attributes_sutypes.value = 'dpmt'::text AND group_attributes_sutypes.attr = 'sutype'::text) 
    561             UNION ALL  
     561            UNION ALL 
    562562            SELECT "group".name AS value, 'cells' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    563563            FROM "group" 
     
    566566            JOIN "user" ON "user".name = group_attributes_users.value 
    567567            WHERE group_attributes_sutypes.value = 'cell'::text AND group_attributes_sutypes.attr = 'sutype'::text) 
    568             UNION ALL  
     568            UNION ALL 
    569569            SELECT "group".name AS value, 'managedObjects' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    570570            FROM "user" 
     
    572572            JOIN "group" ON group_attributes.okey = "group".ikey 
    573573            WHERE group_attributes.attr = 'managedBy'::text) 
    574             UNION ALL  
     574            UNION ALL 
    575575            SELECT justify_interval(now() - "user".expire)::text AS value, 'expired' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    576576            FROM "user" 
    577577            WHERE "user".expire <= now()) 
    578             UNION ALL  
     578            UNION ALL 
    579579            SELECT 1::text AS value, 'active' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    580580            FROM "user" 
    581581            WHERE ("user".expire IS NULL OR "user".expire >= now()) AND "user".exported = true 
    582             UNION ALL  
     582            UNION ALL 
    583583            SELECT 0::text AS value, 'active' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
    584584            FROM "user" 
    585             WHERE ("user".expire IS NOT NULL and "user".expire <= now()) or "user".exported = false;  
     585            WHERE ("user".expire IS NOT NULL and "user".expire <= now()) or "user".exported = false; 
    586586            }, 
    587587            q{ 
     
    853853            }, 
    854854            q{ 
    855             CREATE OR REPLACE VIEW aliases_attributes AS  
     855            CREATE OR REPLACE VIEW aliases_attributes AS 
    856856            SELECT "user".name AS value, 
    857857            'user'::text AS attr, 
     
    922922            q{ 
    923923            ALTER TABLE "nethost" ADD COLUMN expire timestamp with time zone; 
     924            } 
     925        ], 
     926    }, 
     927    { 
     928        var => 20, 
     929        sql => [ 
     930            q{ 
     931            CREATE OR REPLACE VIEW user_attributes AS 
     932                SELECT "user".uidnumber::text AS value, 'uidnumber' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     933                FROM "user" 
     934            UNION ALL 
     935                SELECT "user".gidnumber::text AS value, 'gidnumber' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     936                FROM "user" 
     937            UNION ALL 
     938                SELECT "user".name AS value, 'name' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     939                FROM "user" 
     940            UNION ALL 
     941                SELECT "user".expire::text AS value, 'expire' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     942                FROM "user" 
     943                WHERE "user".expire IS NOT NULL 
     944            UNION ALL 
     945                SELECT '1'::text AS value, 'exported' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     946                FROM "user" 
     947                WHERE "user".exported = true 
     948            UNION ALL 
     949                SELECT address_attributes_site.value, 'allsite' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     950                FROM "user" 
     951                JOIN address ON address."user" = "user".name 
     952                JOIN address_attributes_site ON address_attributes_site.okey = address.ikey 
     953                WHERE address_attributes_site.attr = 'site'::text AND address.exported = true 
     954            UNION ALL 
     955                SELECT "group".name AS value, 'memberOf' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     956                FROM "user" 
     957                JOIN group_attributes ON group_attributes.value = "user".name 
     958                JOIN "group" ON group_attributes.okey = "group".ikey 
     959                WHERE group_attributes.attr = 'memberUID'::text 
     960            UNION ALL 
     961                SELECT user_attributes.value, user_attributes.attr, user_attributes.attr_key, user_attributes.okey 
     962                FROM user_attributes_base user_attributes 
     963            UNION ALL 
     964                SELECT "group".name AS value, 'departments' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     965                FROM "group" 
     966                JOIN group_attributes_sutypes ON "group".ikey = group_attributes_sutypes.okey 
     967                JOIN group_attributes_users ON "group".ikey = group_attributes_users.okey AND group_attributes_users.attr = 'memberUID'::text 
     968                JOIN "user" ON "user".name = group_attributes_users.value 
     969                WHERE group_attributes_sutypes.value = 'dpmt'::text AND group_attributes_sutypes.attr = 'sutype'::text 
     970            UNION ALL 
     971                SELECT "group".name AS value, 'cells' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     972                FROM "group" 
     973                JOIN group_attributes_sutypes ON "group".ikey = group_attributes_sutypes.okey 
     974                JOIN group_attributes_users ON "group".ikey = group_attributes_users.okey AND group_attributes_users.attr = 'memberUID'::text 
     975                JOIN "user" ON "user".name = group_attributes_users.value 
     976                WHERE group_attributes_sutypes.value = 'cell'::text AND group_attributes_sutypes.attr = 'sutype'::text 
     977            UNION ALL 
     978                SELECT "group".name AS value, 'managedObjects' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     979                FROM "user" 
     980                JOIN group_attributes ON group_attributes.value = "user".name 
     981                JOIN "group" ON group_attributes.okey = "group".ikey 
     982                WHERE group_attributes.attr = 'managedBy'::text 
     983            UNION ALL 
     984                SELECT justify_interval(now() - "user".expire)::text AS value, 'expired' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     985                FROM "user" 
     986                WHERE "user".expire <= now() 
     987            UNION ALL 
     988                SELECT 1::text AS value, 'active' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     989                FROM "user" 
     990                WHERE ("user".expire IS NULL OR "user".expire >= now()) AND "user".exported = true 
     991            UNION ALL 
     992                SELECT 0::text AS value, 'active' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     993                FROM "user" 
     994                WHERE "user".expire IS NOT NULL AND "user".expire <= now() OR "user".exported = false 
     995            UNION ALL 
     996                SELECT CASE WHEN "user".exported = false THEN 'unexported' 
     997                WHEN "user".expire IS NOT NULL AND "user".expire <= now() THEN 'expired' 
     998                ELSE 'active' END AS value, 'status' AS attr, "user".rev AS attr_key, "user".ikey AS okey 
     999                FROM "user" 
     1000            ; 
     1001 
    9241002            } 
    9251003        ], 
     
    9921070        } 
    9931071    } 
    994 }  
    995   
     1072} 
     1073 
    9961074foreach (@objects) { 
    9971075    if (!$labase->get_object($_->{otype}, $_->{name})) { 
Note: See TracChangeset for help on using the changeset viewer.