OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / pettanr / operator.js.coffee
1 class Pettanr.Operator\r
2   \r
3   initialize: (operators) ->\r
4     @operators = operators\r
5   \r
6   #InstanceMethods\r
7   find_user: () ->\r
8     _.each @operators, (operator) ->\r
9       return operator if operator instanceof Pettanr.User\r
10       return operator.user if operator instanceof Pettanr.Author\r
11       return operator.user if operator instanceof Pettanr.Artist\r
12     nil\r
13   \r
14   find_author: () ->\r
15     _.each @operators, (operator) ->\r
16       return operator if operator instanceof Pettanr.Author\r
17       return operator.author if operator instanceof Pettanr.User\r
18       return operator.user.author if (operator instanceof Pettanr.Artist) and operator.user.author\r
19     nil\r
20   \r
21   find_artist: () ->\r
22     _.each @operators, (operator) ->\r
23       return operator.user.artist if (operator instanceof Pettanr.Author) and operator.user.artist\r
24       return operator.artist if operator instanceof Pettanr.User\r
25       return operator if operator instanceof Pettanr.Artist\r
26     nil\r
27   \r
28   find_admin: () ->\r
29     _.each @operators, (operator) ->\r
30       return operator if operator instanceof Pettanr.Admin\r
31     nil\r
32   \r
33   user: () ->\r
34     return @user if @user\r
35     @user = @find_user()\r
36   \r
37   author: () ->\r
38     return @author if @author\r
39     @author = @find_author()\r
40   \r
41   artist: () ->\r
42     return @artist if @artist\r
43     @artist = @find_artist()\r
44   \r
45   admin: () ->\r
46     return @admin if @admin\r
47     @admin = @find_admin()\r
48   \r
49   is_guest: () ->\r
50     true\r
51   \r
52   is_reader: () ->\r
53     _.each @operators, (operator) ->\r
54       return true if (operator instanceof Pettanr.Author) or (operator instanceof Pettanr.Artist) or (operator instanceof Pettanr.Admin) or (operator instanceof Pettanr.User)\r
55     false\r
56   \r
57   is_user: () ->\r
58     _.each @operators, (operator) ->\r
59       return true if (operator instanceof Pettanr.Author) or (operator instanceof Pettanr.Artist) or (operator instanceof Pettanr.User)\r
60     false\r
61   \r
62   is_resource_reader: () ->\r
63     _.each @operators, (operator) ->\r
64       return true if (operator instanceof Pettanr.Author) or (operator instanceof Artist) or (operator instanceof Pettanr.Admin) or (operator instanceof Pettanr.User) or (operator instanceof Pettanr.DemandUser)\r
65     false\r
66   \r
67   is_admin: () ->\r
68     _.each @operators, (operator) ->\r
69       return true if operator instanceof Pettanr.Admin\r
70     false\r
71   \r