/[smecontribs]/rpms/smeserver-nextcloud/contribs9/smeserver-nextcloud-1.1.0-bz10566-improve-shares.patch
ViewVC logotype

Annotation of /rpms/smeserver-nextcloud/contribs9/smeserver-nextcloud-1.1.0-bz10566-improve-shares.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Thu Apr 12 01:19:12 2018 UTC (6 years, 6 months ago) by jpp
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
* Wed Apr 11 2018 Jean-Philipe Pialasse <tests@pialasse.com> 1.1.0-7.sme
- fix long update [SME: 10564]
- fix IncludeIbay not working.

1 jpp 1.1 diff -Nur smeserver-nextcloud-1.1.0.old/createlinks smeserver-nextcloud-1.1.0/createlinks
2     --- smeserver-nextcloud-1.1.0.old/createlinks 2018-04-11 00:07:43.308000000 -0400
3     +++ smeserver-nextcloud-1.1.0/createlinks 2018-04-11 00:10:26.131000000 -0400
4     @@ -27,7 +27,7 @@
5     nextcloud-del-user 60
6     ));
7    
8     -foreach my $event (qw(ibay-create ibay-modify ibay-modify-files group-create group-delete group-modify user-create user-modify domain-create domain-delete domain-modify )){
9     +foreach my $event (qw(ibay-create ibay-modify ibay-modify-files group-create group-delete group-modify user-create user-modify domain-create domain-delete domain-modify share-create share-delete share-modify)){
10     event_link("nextcloud-occ-conf", $event, "30");
11     }
12    
13     diff -Nur smeserver-nextcloud-1.1.0.old/root/etc/e-smith/events/actions/nextcloud-occ-conf smeserver-nextcloud-1.1.0/root/etc/e-smith/events/actions/nextcloud-occ-conf
14     --- smeserver-nextcloud-1.1.0.old/root/etc/e-smith/events/actions/nextcloud-occ-conf 2018-04-11 00:07:43.307000000 -0400
15     +++ smeserver-nextcloud-1.1.0/root/etc/e-smith/events/actions/nextcloud-occ-conf 2018-04-11 00:09:09.391000000 -0400
16     @@ -5,6 +5,7 @@
17     use esmith::util;
18     use esmith::AccountsDB;
19     use JSON;
20     +use Array::Compare;
21    
22     sub OCC
23     {
24     @@ -16,6 +17,7 @@
25     {
26     my $params = join(" ", @_);
27     my $json =`TERM=dumb su - apache -s /bin/bash -c "source /opt/remi/php71/enable; cd /usr/share/nextcloud/; php occ $params"` ;
28     + $json =~ s/\s+$//;
29     return $json;
30     }
31    
32     @@ -82,7 +84,7 @@
33     my $baseDN = esmith::util::ldapBase($cdb->get_value('DomainName'));
34     my $local = $cdb->get_value('LocalIP');
35     my $remote = $cdb->get_value('ExternalIP') || "";
36     -
37     +my $comp1 = Array::Compare->new;
38    
39     # update trusted domains
40     OCC "config:system:set trusted_domains 0 --value=$fqdn";
41     @@ -142,10 +144,20 @@
42    
43     # set ibays shares
44     foreach ( @ibays) {
45     - my $group = $_->prop('Group');
46     + my $group = $_->prop('Group') ||'';
47     my $key = $_->key;
48     my $id = "";
49     -
50     + my $typ = $_->prop('type');
51     + my @wgroups = split(',', $_->prop('WriteGroups')||'');
52     + my @rgroups = split(',', $_->prop('ReadGroups')||'');
53     + my @groups ;
54     + push @groups, @rgroups,@wgroups, split(',',$group);
55     + my @rusers = split(',', $_->prop('ReadUsers')||'');
56     + my @wusers = split(',', $_->prop('WriteUsers')||'');
57     + my @Users;
58     + push @Users,@wusers,@rusers;
59     + my @uUsers ;
60     + for (@Users) { push @uUsers, $NCusers{$_}; } ;
61     # next if includeI not empty and if not in includeI
62     next if (scalar(@incI) > 0 && grep(/^$key$/i, @incI) );
63     # next if in excludeI
64     @@ -161,11 +173,16 @@
65     if ($storage eq "smb") {
66     $id = OCCr "files_external:create -c share=$key -c host=localhost 'ibays/$key' smb password::logincredentials --output json";
67     } else {
68     - $id = OCCr "files_external:create -c datadir=/home/e-smith/files/ibays/$key 'ibays/$key' local null::null --output json";
69     + $id = OCCr "files_external:create -c datadir=/home/e-smith/files/$typ/$key 'ibays/$key' local null::null --output json";
70     + }
71     + for $group (@groups) {
72     + OCC "files_external:applicable --add-group $group $id --output json";
73     + }
74     + for my $u (@uUsers) {
75     + OCC "files_external:applicable --add-user $u $id --output json" ;
76     }
77     - OCC "files_external:applicable --add-group $group $id";
78     push @idOK,$id;
79     - print "created $key\n";
80     + print "created $typ $key : $id\n";
81     next;
82     }
83     if (scalar(@matching_keys) > 1) {
84     @@ -179,10 +196,20 @@
85    
86     #if one: update if necessary
87     $id = pop @matching_keys;
88     - if (scalar(@{$localmounts{$id}{'applicable_users'}}) >0 || scalar(@{$localmounts{$id}{'applicable_groups'}}) >1 || scalar(@{$localmounts{$id}{'applicable_groups'}}) == 0 || $localmounts{$id}{'applicable_groups'}[0] ne $group) {
89     + my @a = sort(@{$localmounts{$id}{'applicable_groups'}} );
90     + my @b = sort(@groups);
91     + my @ua = sort(@{$localmounts{$id}{'applicable_users'}} );
92     + my @ub = sort(@uUsers);
93     + if ( ! $comp1->compare(\@ua, \@ub) || ! $comp1->compare(\@a, \@b) ) {
94     print "updating $key\n";
95     - OCC "files_external:applicable --remove-all $id";
96     - OCC "files_external:applicable --add-group $group $id" ;
97     + OCC "files_external:applicable --remove-all $id --output json";
98     + for $group (@groups) {
99     + OCC "files_external:applicable --add-group $group $id --output json" ;
100     + }
101     + for my $u (@uUsers) {
102     + OCC "files_external:applicable --add-user $u $id --output json" ;
103     + }
104     +
105     }
106     push @idOK,$id;
107     }
108     @@ -215,8 +242,11 @@
109     unless ( !-d $idir || !-d "$idir/files" || -d "$idir/files/ibays")
110     {
111     mkdir "$idir/files/ibays", 0770;
112     - chown $uid, $gid,"$idir/files/ibays";
113     }
114     + # we do this on every turn in case it was wrong
115     + chown $uid, $gid,"$idir/files/ibays";
116     + chmod 0770, "$idir/files/ibays";
117     + OCC "files:scan $user --quiet";
118     # we proceed next only if we want the user homes
119     next unless ($status eq "enabled");
120     # get existing mount

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed