/* get/set active role id */
        UUID IGroupSelectInterface.this[UGUI requestingAgent, UGI group, UGUI principal]
        {
            get
            {
                UUID id;
                if (!ActiveGroup.TryGetValue(requestingAgent, group, principal, out id))
                {
                    id = UUID.Zero;
                }
                return(id);
            }

            set
            {
                using (var conn = new NpgsqlConnection(m_ConnectionString))
                {
                    conn.Open();
                    using (var cmd = new NpgsqlCommand("UPDATE groupmemberships SET \"SelectedRoleID\"=@roleid WHERE \"PrincipalID\" = @principalid AND \"GroupID\" = @groupid", conn))
                    {
                        cmd.Parameters.AddParameter("@roleid", value);
                        cmd.Parameters.AddParameter("@groupid", group.ID);
                        cmd.Parameters.AddParameter("@principalid", principal.ID);
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }
コード例 #2
0
 UUID IGroupSelectInterface.this[UGUI requestingAgent, UGI group, UGUI principal]
 {
     get
     {
         UUID id;
         if (!ActiveGroup.TryGetValue(requestingAgent, group, principal, out id))
         {
             throw new KeyNotFoundException();
         }
         return(id);
     }
     set
     {
         MemoryGroupInfo   info;
         MemoryGroupMember mem;
         if (m_Groups.TryGetValue(group.ID, out info) && info.Members.TryGetValue(principal, out mem))
         {
             mem.ActiveRoleID = value;
         }
         else
         {
             throw new KeyNotFoundException();
         }
     }
 }
コード例 #3
0
        UGI IGroupSelectInterface.this[UGUI requestingAgent, UGUI principal]
        {
            get
            {
                UGI ugi;
                if (!ActiveGroup.TryGetValue(requestingAgent, principal, out ugi))
                {
                    throw new KeyNotFoundException();
                }
                return(ugi);
            }

            set
            {
                m_ActiveGroups[principal] = value.ID;
            }
        }
        bool IActiveGroupMembershipInterface.TryGetValue(UGUI requestingAgent, UGUI principal, out GroupActiveMembership gam)
        {
            gam = default(GroupActiveMembership);
            UGI activegroup;

            if (!ActiveGroup.TryGetValue(requestingAgent, principal, out activegroup))
            {
                return(false);
            }
            GroupInfo group;

            if (!Groups.TryGetValue(requestingAgent, activegroup, out group))
            {
                return(false);
            }

            GroupMember gmem;

            if (!Members.TryGetValue(requestingAgent, activegroup, principal, out gmem))
            {
                return(false);
            }

            GroupRole role;

            if (!Roles.TryGetValue(requestingAgent, activegroup, gmem.SelectedRoleID, out role))
            {
                return(false);
            }

            gam = new GroupActiveMembership
            {
                Group          = group.ID,
                SelectedRoleID = gmem.SelectedRoleID,
                User           = gmem.Principal
            };
            return(true);
        }